/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty H-Termination with start terms of the given HASKELL could not be shown: (0) HASKELL (1) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 18 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, 20 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, 0 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, 30 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, 0 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, 0 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, 1 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, 79 ms] (316) QDP (317) QDPOrderProof [EQUIVALENT, 56 ms] (318) QDP (319) MNOCProof [EQUIVALENT, 0 ms] (320) QDP (321) QDPOrderProof [EQUIVALENT, 987 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) MNOCProof [EQUIVALENT, 0 ms] (346) QDP (347) InductionCalculusProof [EQUIVALENT, 0 ms] (348) QDP (349) TransformationProof [EQUIVALENT, 0 ms] (350) QDP (351) TransformationProof [EQUIVALENT, 0 ms] (352) QDP (353) UsableRulesProof [EQUIVALENT, 0 ms] (354) QDP (355) QReductionProof [EQUIVALENT, 0 ms] (356) QDP (357) TransformationProof [EQUIVALENT, 0 ms] (358) QDP (359) UsableRulesProof [EQUIVALENT, 0 ms] (360) QDP (361) QReductionProof [EQUIVALENT, 0 ms] (362) QDP (363) TransformationProof [EQUIVALENT, 0 ms] (364) QDP (365) TransformationProof [EQUIVALENT, 0 ms] (366) QDP (367) DependencyGraphProof [EQUIVALENT, 0 ms] (368) QDP (369) TransformationProof [EQUIVALENT, 0 ms] (370) QDP (371) DependencyGraphProof [EQUIVALENT, 0 ms] (372) QDP (373) TransformationProof [EQUIVALENT, 0 ms] (374) QDP (375) DependencyGraphProof [EQUIVALENT, 0 ms] (376) QDP (377) TransformationProof [EQUIVALENT, 0 ms] (378) QDP (379) DependencyGraphProof [EQUIVALENT, 0 ms] (380) QDP (381) TransformationProof [EQUIVALENT, 0 ms] (382) QDP (383) DependencyGraphProof [EQUIVALENT, 0 ms] (384) AND (385) QDP (386) UsableRulesProof [EQUIVALENT, 0 ms] (387) QDP (388) QReductionProof [EQUIVALENT, 0 ms] (389) QDP (390) TransformationProof [EQUIVALENT, 0 ms] (391) QDP (392) DependencyGraphProof [EQUIVALENT, 0 ms] (393) QDP (394) TransformationProof [EQUIVALENT, 0 ms] (395) QDP (396) DependencyGraphProof [EQUIVALENT, 0 ms] (397) QDP (398) TransformationProof [EQUIVALENT, 0 ms] (399) QDP (400) TransformationProof [EQUIVALENT, 0 ms] (401) QDP (402) DependencyGraphProof [EQUIVALENT, 0 ms] (403) AND (404) QDP (405) UsableRulesProof [EQUIVALENT, 0 ms] (406) QDP (407) QReductionProof [EQUIVALENT, 0 ms] (408) QDP (409) TransformationProof [EQUIVALENT, 0 ms] (410) QDP (411) TransformationProof [EQUIVALENT, 0 ms] (412) QDP (413) TransformationProof [EQUIVALENT, 0 ms] (414) QDP (415) TransformationProof [EQUIVALENT, 0 ms] (416) QDP (417) TransformationProof [EQUIVALENT, 0 ms] (418) QDP (419) DependencyGraphProof [EQUIVALENT, 0 ms] (420) QDP (421) TransformationProof [EQUIVALENT, 0 ms] (422) QDP (423) DependencyGraphProof [EQUIVALENT, 0 ms] (424) QDP (425) TransformationProof [EQUIVALENT, 0 ms] (426) QDP (427) QDPSizeChangeProof [EQUIVALENT, 0 ms] (428) YES (429) QDP (430) UsableRulesProof [EQUIVALENT, 0 ms] (431) QDP (432) QReductionProof [EQUIVALENT, 0 ms] (433) QDP (434) TransformationProof [EQUIVALENT, 0 ms] (435) QDP (436) TransformationProof [EQUIVALENT, 0 ms] (437) QDP (438) TransformationProof [EQUIVALENT, 0 ms] (439) QDP (440) TransformationProof [EQUIVALENT, 0 ms] (441) QDP (442) TransformationProof [EQUIVALENT, 0 ms] (443) QDP (444) TransformationProof [EQUIVALENT, 0 ms] (445) QDP (446) TransformationProof [EQUIVALENT, 0 ms] (447) QDP (448) TransformationProof [EQUIVALENT, 0 ms] (449) QDP (450) TransformationProof [EQUIVALENT, 0 ms] (451) QDP (452) DependencyGraphProof [EQUIVALENT, 0 ms] (453) QDP (454) TransformationProof [EQUIVALENT, 0 ms] (455) QDP (456) DependencyGraphProof [EQUIVALENT, 0 ms] (457) AND (458) QDP (459) TransformationProof [EQUIVALENT, 0 ms] (460) QDP (461) TransformationProof [EQUIVALENT, 0 ms] (462) QDP (463) TransformationProof [EQUIVALENT, 0 ms] (464) QDP (465) QReductionProof [EQUIVALENT, 0 ms] (466) QDP (467) InductionCalculusProof [EQUIVALENT, 0 ms] (468) QDP (469) QDP (470) QReductionProof [EQUIVALENT, 0 ms] (471) QDP (472) InductionCalculusProof [EQUIVALENT, 0 ms] (473) QDP (474) QDP (475) UsableRulesProof [EQUIVALENT, 0 ms] (476) QDP (477) QReductionProof [EQUIVALENT, 0 ms] (478) QDP (479) TransformationProof [EQUIVALENT, 0 ms] (480) QDP (481) DependencyGraphProof [EQUIVALENT, 0 ms] (482) QDP (483) TransformationProof [EQUIVALENT, 0 ms] (484) QDP (485) DependencyGraphProof [EQUIVALENT, 0 ms] (486) QDP (487) TransformationProof [EQUIVALENT, 0 ms] (488) QDP (489) TransformationProof [EQUIVALENT, 0 ms] (490) QDP (491) DependencyGraphProof [EQUIVALENT, 0 ms] (492) AND (493) QDP (494) UsableRulesProof [EQUIVALENT, 0 ms] (495) QDP (496) QReductionProof [EQUIVALENT, 0 ms] (497) QDP (498) TransformationProof [EQUIVALENT, 0 ms] (499) QDP (500) TransformationProof [EQUIVALENT, 0 ms] (501) QDP (502) TransformationProof [EQUIVALENT, 0 ms] (503) QDP (504) TransformationProof [EQUIVALENT, 0 ms] (505) QDP (506) TransformationProof [EQUIVALENT, 0 ms] (507) QDP (508) DependencyGraphProof [EQUIVALENT, 0 ms] (509) QDP (510) TransformationProof [EQUIVALENT, 0 ms] (511) QDP (512) DependencyGraphProof [EQUIVALENT, 0 ms] (513) QDP (514) TransformationProof [EQUIVALENT, 0 ms] (515) QDP (516) QDPSizeChangeProof [EQUIVALENT, 0 ms] (517) YES (518) QDP (519) UsableRulesProof [EQUIVALENT, 0 ms] (520) QDP (521) QReductionProof [EQUIVALENT, 0 ms] (522) QDP (523) TransformationProof [EQUIVALENT, 0 ms] (524) QDP (525) TransformationProof [EQUIVALENT, 0 ms] (526) QDP (527) TransformationProof [EQUIVALENT, 0 ms] (528) QDP (529) TransformationProof [EQUIVALENT, 0 ms] (530) QDP (531) TransformationProof [EQUIVALENT, 0 ms] (532) QDP (533) TransformationProof [EQUIVALENT, 0 ms] (534) QDP (535) TransformationProof [EQUIVALENT, 0 ms] (536) QDP (537) TransformationProof [EQUIVALENT, 0 ms] (538) QDP (539) TransformationProof [EQUIVALENT, 0 ms] (540) QDP (541) DependencyGraphProof [EQUIVALENT, 0 ms] (542) QDP (543) TransformationProof [EQUIVALENT, 0 ms] (544) QDP (545) DependencyGraphProof [EQUIVALENT, 0 ms] (546) AND (547) QDP (548) TransformationProof [EQUIVALENT, 0 ms] (549) QDP (550) TransformationProof [EQUIVALENT, 0 ms] (551) QDP (552) TransformationProof [EQUIVALENT, 0 ms] (553) QDP (554) QReductionProof [EQUIVALENT, 0 ms] (555) QDP (556) InductionCalculusProof [EQUIVALENT, 0 ms] (557) QDP (558) QDP (559) QReductionProof [EQUIVALENT, 0 ms] (560) QDP (561) InductionCalculusProof [EQUIVALENT, 0 ms] (562) QDP (563) QDP (564) UsableRulesProof [EQUIVALENT, 0 ms] (565) QDP (566) QReductionProof [EQUIVALENT, 0 ms] (567) QDP (568) TransformationProof [EQUIVALENT, 0 ms] (569) QDP (570) DependencyGraphProof [EQUIVALENT, 0 ms] (571) QDP (572) TransformationProof [EQUIVALENT, 0 ms] (573) QDP (574) DependencyGraphProof [EQUIVALENT, 0 ms] (575) QDP (576) TransformationProof [EQUIVALENT, 0 ms] (577) QDP (578) TransformationProof [EQUIVALENT, 0 ms] (579) QDP (580) DependencyGraphProof [EQUIVALENT, 0 ms] (581) QDP (582) TransformationProof [EQUIVALENT, 0 ms] (583) QDP (584) TransformationProof [EQUIVALENT, 0 ms] (585) QDP (586) TransformationProof [EQUIVALENT, 0 ms] (587) QDP (588) DependencyGraphProof [EQUIVALENT, 0 ms] (589) QDP (590) TransformationProof [EQUIVALENT, 0 ms] (591) QDP (592) TransformationProof [EQUIVALENT, 0 ms] (593) QDP (594) TransformationProof [EQUIVALENT, 0 ms] (595) QDP (596) TransformationProof [EQUIVALENT, 0 ms] (597) QDP (598) DependencyGraphProof [EQUIVALENT, 0 ms] (599) QDP (600) TransformationProof [EQUIVALENT, 0 ms] (601) QDP (602) TransformationProof [EQUIVALENT, 0 ms] (603) QDP (604) TransformationProof [EQUIVALENT, 0 ms] (605) QDP (606) TransformationProof [EQUIVALENT, 0 ms] (607) QDP (608) TransformationProof [EQUIVALENT, 0 ms] (609) QDP (610) TransformationProof [EQUIVALENT, 0 ms] (611) QDP (612) DependencyGraphProof [EQUIVALENT, 0 ms] (613) QDP (614) TransformationProof [EQUIVALENT, 0 ms] (615) QDP (616) TransformationProof [EQUIVALENT, 0 ms] (617) QDP (618) DependencyGraphProof [EQUIVALENT, 0 ms] (619) AND (620) QDP (621) UsableRulesProof [EQUIVALENT, 0 ms] (622) QDP (623) QReductionProof [EQUIVALENT, 0 ms] (624) QDP (625) TransformationProof [EQUIVALENT, 0 ms] (626) QDP (627) TransformationProof [EQUIVALENT, 0 ms] (628) QDP (629) TransformationProof [EQUIVALENT, 0 ms] (630) QDP (631) DependencyGraphProof [EQUIVALENT, 0 ms] (632) QDP (633) TransformationProof [EQUIVALENT, 0 ms] (634) QDP (635) DependencyGraphProof [EQUIVALENT, 0 ms] (636) QDP (637) TransformationProof [EQUIVALENT, 0 ms] (638) QDP (639) QDPSizeChangeProof [EQUIVALENT, 0 ms] (640) YES (641) QDP (642) UsableRulesProof [EQUIVALENT, 0 ms] (643) QDP (644) QReductionProof [EQUIVALENT, 0 ms] (645) QDP (646) TransformationProof [EQUIVALENT, 0 ms] (647) QDP (648) TransformationProof [EQUIVALENT, 0 ms] (649) QDP (650) TransformationProof [EQUIVALENT, 0 ms] (651) QDP (652) TransformationProof [EQUIVALENT, 0 ms] (653) QDP (654) TransformationProof [EQUIVALENT, 0 ms] (655) QDP (656) DependencyGraphProof [EQUIVALENT, 0 ms] (657) QDP (658) TransformationProof [EQUIVALENT, 0 ms] (659) QDP (660) DependencyGraphProof [EQUIVALENT, 0 ms] (661) QDP (662) TransformationProof [EQUIVALENT, 0 ms] (663) QDP (664) QDPSizeChangeProof [EQUIVALENT, 0 ms] (665) YES (666) QDP (667) UsableRulesProof [EQUIVALENT, 0 ms] (668) QDP (669) QReductionProof [EQUIVALENT, 0 ms] (670) QDP (671) TransformationProof [EQUIVALENT, 0 ms] (672) QDP (673) TransformationProof [EQUIVALENT, 0 ms] (674) QDP (675) TransformationProof [EQUIVALENT, 0 ms] (676) QDP (677) TransformationProof [EQUIVALENT, 0 ms] (678) QDP (679) TransformationProof [EQUIVALENT, 0 ms] (680) QDP (681) TransformationProof [EQUIVALENT, 0 ms] (682) QDP (683) TransformationProof [EQUIVALENT, 0 ms] (684) QDP (685) TransformationProof [EQUIVALENT, 0 ms] (686) QDP (687) TransformationProof [EQUIVALENT, 0 ms] (688) QDP (689) DependencyGraphProof [EQUIVALENT, 0 ms] (690) QDP (691) TransformationProof [EQUIVALENT, 0 ms] (692) QDP (693) DependencyGraphProof [EQUIVALENT, 0 ms] (694) QDP (695) TransformationProof [EQUIVALENT, 0 ms] (696) QDP (697) TransformationProof [EQUIVALENT, 0 ms] (698) QDP (699) TransformationProof [EQUIVALENT, 0 ms] (700) QDP (701) TransformationProof [EQUIVALENT, 0 ms] (702) QDP (703) DependencyGraphProof [EQUIVALENT, 0 ms] (704) AND (705) QDP (706) UsableRulesProof [EQUIVALENT, 0 ms] (707) QDP (708) TransformationProof [EQUIVALENT, 0 ms] (709) QDP (710) TransformationProof [EQUIVALENT, 0 ms] (711) QDP (712) TransformationProof [EQUIVALENT, 0 ms] (713) QDP (714) InductionCalculusProof [EQUIVALENT, 0 ms] (715) QDP (716) QDP (717) UsableRulesProof [EQUIVALENT, 0 ms] (718) QDP (719) TransformationProof [EQUIVALENT, 0 ms] (720) QDP (721) UsableRulesProof [EQUIVALENT, 0 ms] (722) QDP (723) InductionCalculusProof [EQUIVALENT, 0 ms] (724) QDP (725) QDP (726) InductionCalculusProof [EQUIVALENT, 0 ms] (727) QDP (728) QDP (729) QDPSizeChangeProof [EQUIVALENT, 0 ms] (730) YES (731) Narrow [COMPLETE, 0 ms] (732) QDP (733) PisEmptyProof [EQUIVALENT, 0 ms] (734) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" is transformed to "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); primDivNatS0 x y False = Zero; " The following If expression "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" is transformed to "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); primModNatS0 x y False = Succ x; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "absReal x|x >= 0x|otherwise`negate` x; " is transformed to "absReal x = absReal2 x; " "absReal1 x True = x; absReal1 x False = absReal0 x otherwise; " "absReal0 x True = `negate` x; " "absReal2 x = absReal1 x (x >= 0); " The following Function with conditions "gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); " is transformed to "gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; " "gcd'0 x y = gcd' y (x `rem` y); " "gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; " "gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; " The following Function with conditions "gcd 0 0 = error []; gcd x y = gcd' (abs x) (abs y) where { gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); } ; " is transformed to "gcd yz zu = gcd3 yz zu; gcd x y = gcd0 x y; " "gcd0 x y = gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } ; " "gcd1 True yz zu = error []; gcd1 zv zw zx = gcd0 zw zx; " "gcd2 True yz zu = gcd1 (zu == 0) yz zu; gcd2 zy zz vuu = gcd0 zz vuu; " "gcd3 yz zu = gcd2 (yz == 0) yz zu; gcd3 vuv vuw = gcd0 vuv vuw; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "reduce x y|y == 0error []|otherwisex `quot` d :% (y `quot` d) where { d = gcd x y; } ; " is transformed to "reduce x y = reduce2 x y; " "reduce2 x y = reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } ; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } " are unpacked to the following functions on top level "gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y); " "gcd0Gcd'1 True x xz = x; gcd0Gcd'1 yu yv yw = gcd0Gcd'0 yv yw; " "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; " 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 "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; " "reduce2D vux vuy = gcd vux vuy; " ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (10) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (11) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="(*)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="(*) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(*) vuz3 vuz4",fontsize=16,color="blue",shape="box"];1023[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 1023[label="",style="solid", color="blue", weight=9]; 1023 -> 5[label="",style="solid", color="blue", weight=3]; 1024[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 1024[label="",style="solid", color="blue", weight=9]; 1024 -> 6[label="",style="solid", color="blue", weight=3]; 1025[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 1025[label="",style="solid", color="blue", weight=9]; 1025 -> 7[label="",style="solid", color="blue", weight=3]; 1026[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];4 -> 1026[label="",style="solid", color="blue", weight=9]; 1026 -> 8[label="",style="solid", color="blue", weight=3]; 1027[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];4 -> 1027[label="",style="solid", color="blue", weight=9]; 1027 -> 9[label="",style="solid", color="blue", weight=3]; 5[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];5 -> 10[label="",style="solid", color="black", weight=3]; 6[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1028[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];6 -> 1028[label="",style="solid", color="burlywood", weight=9]; 1028 -> 11[label="",style="solid", color="burlywood", weight=3]; 7[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];7 -> 12[label="",style="solid", color="black", weight=3]; 8[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1029[label="vuz3/Integer vuz30",fontsize=10,color="white",style="solid",shape="box"];8 -> 1029[label="",style="solid", color="burlywood", weight=9]; 1029 -> 13[label="",style="solid", color="burlywood", weight=3]; 9[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="triangle"];9 -> 14[label="",style="solid", color="black", weight=3]; 10[label="primMulDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1030[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];10 -> 1030[label="",style="solid", color="burlywood", weight=9]; 1030 -> 15[label="",style="solid", color="burlywood", weight=3]; 11[label="(*) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1031[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];11 -> 1031[label="",style="solid", color="burlywood", weight=9]; 1031 -> 16[label="",style="solid", color="burlywood", weight=3]; 12[label="primMulFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1032[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];12 -> 1032[label="",style="solid", color="burlywood", weight=9]; 1032 -> 17[label="",style="solid", color="burlywood", weight=3]; 13[label="(*) Integer vuz30 vuz4",fontsize=16,color="burlywood",shape="box"];1033[label="vuz4/Integer vuz40",fontsize=10,color="white",style="solid",shape="box"];13 -> 1033[label="",style="solid", color="burlywood", weight=9]; 1033 -> 18[label="",style="solid", color="burlywood", weight=3]; 14[label="primMulInt vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1034[label="vuz3/Pos vuz30",fontsize=10,color="white",style="solid",shape="box"];14 -> 1034[label="",style="solid", color="burlywood", weight=9]; 1034 -> 19[label="",style="solid", color="burlywood", weight=3]; 1035[label="vuz3/Neg vuz30",fontsize=10,color="white",style="solid",shape="box"];14 -> 1035[label="",style="solid", color="burlywood", weight=9]; 1035 -> 20[label="",style="solid", color="burlywood", weight=3]; 15[label="primMulDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1036[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];15 -> 1036[label="",style="solid", color="burlywood", weight=9]; 1036 -> 21[label="",style="solid", color="burlywood", weight=3]; 16[label="(*) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];16 -> 22[label="",style="solid", color="black", weight=3]; 17[label="primMulFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1037[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];17 -> 1037[label="",style="solid", color="burlywood", weight=9]; 1037 -> 23[label="",style="solid", color="burlywood", weight=3]; 18[label="(*) Integer vuz30 Integer vuz40",fontsize=16,color="black",shape="box"];18 -> 24[label="",style="solid", color="black", weight=3]; 19[label="primMulInt (Pos vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1038[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];19 -> 1038[label="",style="solid", color="burlywood", weight=9]; 1038 -> 25[label="",style="solid", color="burlywood", weight=3]; 1039[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];19 -> 1039[label="",style="solid", color="burlywood", weight=9]; 1039 -> 26[label="",style="solid", color="burlywood", weight=3]; 20[label="primMulInt (Neg vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1040[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];20 -> 1040[label="",style="solid", color="burlywood", weight=9]; 1040 -> 27[label="",style="solid", color="burlywood", weight=3]; 1041[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];20 -> 1041[label="",style="solid", color="burlywood", weight=9]; 1041 -> 28[label="",style="solid", color="burlywood", weight=3]; 21[label="primMulDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];21 -> 29[label="",style="solid", color="black", weight=3]; 22[label="reduce (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];22 -> 30[label="",style="solid", color="black", weight=3]; 23[label="primMulFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];23 -> 31[label="",style="solid", color="black", weight=3]; 24[label="Integer (primMulInt vuz30 vuz40)",fontsize=16,color="green",shape="box"];24 -> 32[label="",style="dashed", color="green", weight=3]; 25[label="primMulInt (Pos vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];25 -> 33[label="",style="solid", color="black", weight=3]; 26[label="primMulInt (Pos vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];26 -> 34[label="",style="solid", color="black", weight=3]; 27[label="primMulInt (Neg vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];27 -> 35[label="",style="solid", color="black", weight=3]; 28[label="primMulInt (Neg vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];28 -> 36[label="",style="solid", color="black", weight=3]; 29[label="Double (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];29 -> 37[label="",style="dashed", color="green", weight=3]; 29 -> 38[label="",style="dashed", color="green", weight=3]; 30[label="reduce2 (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];30 -> 39[label="",style="solid", color="black", weight=3]; 31[label="Float (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];31 -> 40[label="",style="dashed", color="green", weight=3]; 31 -> 41[label="",style="dashed", color="green", weight=3]; 32 -> 14[label="",style="dashed", color="red", weight=0]; 32[label="primMulInt vuz30 vuz40",fontsize=16,color="magenta"];32 -> 42[label="",style="dashed", color="magenta", weight=3]; 32 -> 43[label="",style="dashed", color="magenta", weight=3]; 33[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];33 -> 44[label="",style="dashed", color="green", weight=3]; 34[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];34 -> 45[label="",style="dashed", color="green", weight=3]; 35[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];35 -> 46[label="",style="dashed", color="green", weight=3]; 36[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];36 -> 47[label="",style="dashed", color="green", weight=3]; 37 -> 9[label="",style="dashed", color="red", weight=0]; 37[label="vuz30 * vuz40",fontsize=16,color="magenta"];37 -> 48[label="",style="dashed", color="magenta", weight=3]; 37 -> 49[label="",style="dashed", color="magenta", weight=3]; 38 -> 9[label="",style="dashed", color="red", weight=0]; 38[label="vuz31 * vuz41",fontsize=16,color="magenta"];38 -> 50[label="",style="dashed", color="magenta", weight=3]; 38 -> 51[label="",style="dashed", color="magenta", weight=3]; 39 -> 52[label="",style="dashed", color="red", weight=0]; 39[label="reduce2Reduce1 (vuz30 * vuz40) (vuz31 * vuz41) (vuz30 * vuz40) (vuz31 * vuz41) (vuz31 * vuz41 == fromInt (Pos Zero))",fontsize=16,color="magenta"];39 -> 53[label="",style="dashed", color="magenta", weight=3]; 39 -> 54[label="",style="dashed", color="magenta", weight=3]; 39 -> 55[label="",style="dashed", color="magenta", weight=3]; 39 -> 56[label="",style="dashed", color="magenta", weight=3]; 39 -> 57[label="",style="dashed", color="magenta", weight=3]; 40 -> 9[label="",style="dashed", color="red", weight=0]; 40[label="vuz30 * vuz40",fontsize=16,color="magenta"];40 -> 58[label="",style="dashed", color="magenta", weight=3]; 40 -> 59[label="",style="dashed", color="magenta", weight=3]; 41 -> 9[label="",style="dashed", color="red", weight=0]; 41[label="vuz31 * vuz41",fontsize=16,color="magenta"];41 -> 60[label="",style="dashed", color="magenta", weight=3]; 41 -> 61[label="",style="dashed", color="magenta", weight=3]; 42[label="vuz40",fontsize=16,color="green",shape="box"];43[label="vuz30",fontsize=16,color="green",shape="box"];44[label="primMulNat vuz30 vuz40",fontsize=16,color="burlywood",shape="triangle"];1042[label="vuz30/Succ vuz300",fontsize=10,color="white",style="solid",shape="box"];44 -> 1042[label="",style="solid", color="burlywood", weight=9]; 1042 -> 62[label="",style="solid", color="burlywood", weight=3]; 1043[label="vuz30/Zero",fontsize=10,color="white",style="solid",shape="box"];44 -> 1043[label="",style="solid", color="burlywood", weight=9]; 1043 -> 63[label="",style="solid", color="burlywood", weight=3]; 45 -> 44[label="",style="dashed", color="red", weight=0]; 45[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];45 -> 64[label="",style="dashed", color="magenta", weight=3]; 46 -> 44[label="",style="dashed", color="red", weight=0]; 46[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];46 -> 65[label="",style="dashed", color="magenta", weight=3]; 47 -> 44[label="",style="dashed", color="red", weight=0]; 47[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];47 -> 66[label="",style="dashed", color="magenta", weight=3]; 47 -> 67[label="",style="dashed", color="magenta", weight=3]; 48[label="vuz40",fontsize=16,color="green",shape="box"];49[label="vuz30",fontsize=16,color="green",shape="box"];50[label="vuz41",fontsize=16,color="green",shape="box"];51[label="vuz31",fontsize=16,color="green",shape="box"];53[label="vuz40",fontsize=16,color="green",shape="box"];54[label="vuz30",fontsize=16,color="green",shape="box"];55[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];1044[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];55 -> 1044[label="",style="solid", color="blue", weight=9]; 1044 -> 68[label="",style="solid", color="blue", weight=3]; 1045[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];55 -> 1045[label="",style="solid", color="blue", weight=9]; 1045 -> 69[label="",style="solid", color="blue", weight=3]; 56[label="vuz31",fontsize=16,color="green",shape="box"];57[label="vuz41",fontsize=16,color="green",shape="box"];52[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) vuz15",fontsize=16,color="burlywood",shape="triangle"];1046[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];52 -> 1046[label="",style="solid", color="burlywood", weight=9]; 1046 -> 70[label="",style="solid", color="burlywood", weight=3]; 1047[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];52 -> 1047[label="",style="solid", color="burlywood", weight=9]; 1047 -> 71[label="",style="solid", color="burlywood", weight=3]; 58[label="vuz40",fontsize=16,color="green",shape="box"];59[label="vuz30",fontsize=16,color="green",shape="box"];60[label="vuz41",fontsize=16,color="green",shape="box"];61[label="vuz31",fontsize=16,color="green",shape="box"];62[label="primMulNat (Succ vuz300) vuz40",fontsize=16,color="burlywood",shape="box"];1048[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];62 -> 1048[label="",style="solid", color="burlywood", weight=9]; 1048 -> 72[label="",style="solid", color="burlywood", weight=3]; 1049[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];62 -> 1049[label="",style="solid", color="burlywood", weight=9]; 1049 -> 73[label="",style="solid", color="burlywood", weight=3]; 63[label="primMulNat Zero vuz40",fontsize=16,color="burlywood",shape="box"];1050[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];63 -> 1050[label="",style="solid", color="burlywood", weight=9]; 1050 -> 74[label="",style="solid", color="burlywood", weight=3]; 1051[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];63 -> 1051[label="",style="solid", color="burlywood", weight=9]; 1051 -> 75[label="",style="solid", color="burlywood", weight=3]; 64[label="vuz40",fontsize=16,color="green",shape="box"];65[label="vuz30",fontsize=16,color="green",shape="box"];66[label="vuz30",fontsize=16,color="green",shape="box"];67[label="vuz40",fontsize=16,color="green",shape="box"];68 -> 76[label="",style="dashed", color="red", weight=0]; 68[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];68 -> 77[label="",style="dashed", color="magenta", weight=3]; 69 -> 78[label="",style="dashed", color="red", weight=0]; 69[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];69 -> 79[label="",style="dashed", color="magenta", weight=3]; 70[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) False",fontsize=16,color="black",shape="box"];70 -> 80[label="",style="solid", color="black", weight=3]; 71[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];71 -> 81[label="",style="solid", color="black", weight=3]; 72[label="primMulNat (Succ vuz300) (Succ vuz400)",fontsize=16,color="black",shape="box"];72 -> 82[label="",style="solid", color="black", weight=3]; 73[label="primMulNat (Succ vuz300) Zero",fontsize=16,color="black",shape="box"];73 -> 83[label="",style="solid", color="black", weight=3]; 74[label="primMulNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];74 -> 84[label="",style="solid", color="black", weight=3]; 75[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];75 -> 85[label="",style="solid", color="black", weight=3]; 77 -> 9[label="",style="dashed", color="red", weight=0]; 77[label="vuz31 * vuz41",fontsize=16,color="magenta"];77 -> 86[label="",style="dashed", color="magenta", weight=3]; 77 -> 87[label="",style="dashed", color="magenta", weight=3]; 76[label="vuz16 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];76 -> 88[label="",style="solid", color="black", weight=3]; 79 -> 8[label="",style="dashed", color="red", weight=0]; 79[label="vuz31 * vuz41",fontsize=16,color="magenta"];79 -> 89[label="",style="dashed", color="magenta", weight=3]; 79 -> 90[label="",style="dashed", color="magenta", weight=3]; 78[label="vuz17 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1052[label="vuz17/Integer vuz170",fontsize=10,color="white",style="solid",shape="box"];78 -> 1052[label="",style="solid", color="burlywood", weight=9]; 1052 -> 91[label="",style="solid", color="burlywood", weight=3]; 80[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) otherwise",fontsize=16,color="black",shape="box"];80 -> 92[label="",style="solid", color="black", weight=3]; 81[label="error []",fontsize=16,color="black",shape="box"];81 -> 93[label="",style="solid", color="black", weight=3]; 82 -> 94[label="",style="dashed", color="red", weight=0]; 82[label="primPlusNat (primMulNat vuz300 (Succ vuz400)) (Succ vuz400)",fontsize=16,color="magenta"];82 -> 95[label="",style="dashed", color="magenta", weight=3]; 83[label="Zero",fontsize=16,color="green",shape="box"];84[label="Zero",fontsize=16,color="green",shape="box"];85[label="Zero",fontsize=16,color="green",shape="box"];86[label="vuz41",fontsize=16,color="green",shape="box"];87[label="vuz31",fontsize=16,color="green",shape="box"];88[label="primEqInt vuz16 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1053[label="vuz16/Pos vuz160",fontsize=10,color="white",style="solid",shape="box"];88 -> 1053[label="",style="solid", color="burlywood", weight=9]; 1053 -> 96[label="",style="solid", color="burlywood", weight=3]; 1054[label="vuz16/Neg vuz160",fontsize=10,color="white",style="solid",shape="box"];88 -> 1054[label="",style="solid", color="burlywood", weight=9]; 1054 -> 97[label="",style="solid", color="burlywood", weight=3]; 89[label="vuz41",fontsize=16,color="green",shape="box"];90[label="vuz31",fontsize=16,color="green",shape="box"];91[label="Integer vuz170 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];91 -> 98[label="",style="solid", color="black", weight=3]; 92[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];92 -> 99[label="",style="solid", color="black", weight=3]; 93[label="error []",fontsize=16,color="red",shape="box"];95 -> 44[label="",style="dashed", color="red", weight=0]; 95[label="primMulNat vuz300 (Succ vuz400)",fontsize=16,color="magenta"];95 -> 100[label="",style="dashed", color="magenta", weight=3]; 95 -> 101[label="",style="dashed", color="magenta", weight=3]; 94[label="primPlusNat vuz18 (Succ vuz400)",fontsize=16,color="burlywood",shape="triangle"];1055[label="vuz18/Succ vuz180",fontsize=10,color="white",style="solid",shape="box"];94 -> 1055[label="",style="solid", color="burlywood", weight=9]; 1055 -> 102[label="",style="solid", color="burlywood", weight=3]; 1056[label="vuz18/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 1056[label="",style="solid", color="burlywood", weight=9]; 1056 -> 103[label="",style="solid", color="burlywood", weight=3]; 96[label="primEqInt (Pos vuz160) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1057[label="vuz160/Succ vuz1600",fontsize=10,color="white",style="solid",shape="box"];96 -> 1057[label="",style="solid", color="burlywood", weight=9]; 1057 -> 104[label="",style="solid", color="burlywood", weight=3]; 1058[label="vuz160/Zero",fontsize=10,color="white",style="solid",shape="box"];96 -> 1058[label="",style="solid", color="burlywood", weight=9]; 1058 -> 105[label="",style="solid", color="burlywood", weight=3]; 97[label="primEqInt (Neg vuz160) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1059[label="vuz160/Succ vuz1600",fontsize=10,color="white",style="solid",shape="box"];97 -> 1059[label="",style="solid", color="burlywood", weight=9]; 1059 -> 106[label="",style="solid", color="burlywood", weight=3]; 1060[label="vuz160/Zero",fontsize=10,color="white",style="solid",shape="box"];97 -> 1060[label="",style="solid", color="burlywood", weight=9]; 1060 -> 107[label="",style="solid", color="burlywood", weight=3]; 98[label="Integer vuz170 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];98 -> 108[label="",style="solid", color="black", weight=3]; 99[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14) :% (vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14))",fontsize=16,color="green",shape="box"];99 -> 109[label="",style="dashed", color="green", weight=3]; 99 -> 110[label="",style="dashed", color="green", weight=3]; 100[label="vuz300",fontsize=16,color="green",shape="box"];101[label="Succ vuz400",fontsize=16,color="green",shape="box"];102[label="primPlusNat (Succ vuz180) (Succ vuz400)",fontsize=16,color="black",shape="box"];102 -> 111[label="",style="solid", color="black", weight=3]; 103[label="primPlusNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];103 -> 112[label="",style="solid", color="black", weight=3]; 104[label="primEqInt (Pos (Succ vuz1600)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];104 -> 113[label="",style="solid", color="black", weight=3]; 105[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];105 -> 114[label="",style="solid", color="black", weight=3]; 106[label="primEqInt (Neg (Succ vuz1600)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];106 -> 115[label="",style="solid", color="black", weight=3]; 107[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];107 -> 116[label="",style="solid", color="black", weight=3]; 108[label="primEqInt vuz170 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1061[label="vuz170/Pos vuz1700",fontsize=10,color="white",style="solid",shape="box"];108 -> 1061[label="",style="solid", color="burlywood", weight=9]; 1061 -> 117[label="",style="solid", color="burlywood", weight=3]; 1062[label="vuz170/Neg vuz1700",fontsize=10,color="white",style="solid",shape="box"];108 -> 1062[label="",style="solid", color="burlywood", weight=9]; 1062 -> 118[label="",style="solid", color="burlywood", weight=3]; 109[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1063[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];109 -> 1063[label="",style="solid", color="blue", weight=9]; 1063 -> 119[label="",style="solid", color="blue", weight=3]; 1064[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];109 -> 1064[label="",style="solid", color="blue", weight=9]; 1064 -> 120[label="",style="solid", color="blue", weight=3]; 110[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1065[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];110 -> 1065[label="",style="solid", color="blue", weight=9]; 1065 -> 121[label="",style="solid", color="blue", weight=3]; 1066[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];110 -> 1066[label="",style="solid", color="blue", weight=9]; 1066 -> 122[label="",style="solid", color="blue", weight=3]; 111[label="Succ (Succ (primPlusNat vuz180 vuz400))",fontsize=16,color="green",shape="box"];111 -> 123[label="",style="dashed", color="green", weight=3]; 112[label="Succ vuz400",fontsize=16,color="green",shape="box"];113 -> 108[label="",style="dashed", color="red", weight=0]; 113[label="primEqInt (Pos (Succ vuz1600)) (Pos Zero)",fontsize=16,color="magenta"];113 -> 124[label="",style="dashed", color="magenta", weight=3]; 114 -> 108[label="",style="dashed", color="red", weight=0]; 114[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];114 -> 125[label="",style="dashed", color="magenta", weight=3]; 115 -> 108[label="",style="dashed", color="red", weight=0]; 115[label="primEqInt (Neg (Succ vuz1600)) (Pos Zero)",fontsize=16,color="magenta"];115 -> 126[label="",style="dashed", color="magenta", weight=3]; 116 -> 108[label="",style="dashed", color="red", weight=0]; 116[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];116 -> 127[label="",style="dashed", color="magenta", weight=3]; 117[label="primEqInt (Pos vuz1700) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1067[label="vuz1700/Succ vuz17000",fontsize=10,color="white",style="solid",shape="box"];117 -> 1067[label="",style="solid", color="burlywood", weight=9]; 1067 -> 128[label="",style="solid", color="burlywood", weight=3]; 1068[label="vuz1700/Zero",fontsize=10,color="white",style="solid",shape="box"];117 -> 1068[label="",style="solid", color="burlywood", weight=9]; 1068 -> 129[label="",style="solid", color="burlywood", weight=3]; 118[label="primEqInt (Neg vuz1700) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1069[label="vuz1700/Succ vuz17000",fontsize=10,color="white",style="solid",shape="box"];118 -> 1069[label="",style="solid", color="burlywood", weight=9]; 1069 -> 130[label="",style="solid", color="burlywood", weight=3]; 1070[label="vuz1700/Zero",fontsize=10,color="white",style="solid",shape="box"];118 -> 1070[label="",style="solid", color="burlywood", weight=9]; 1070 -> 131[label="",style="solid", color="burlywood", weight=3]; 119 -> 132[label="",style="dashed", color="red", weight=0]; 119[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];119 -> 133[label="",style="dashed", color="magenta", weight=3]; 119 -> 134[label="",style="dashed", color="magenta", weight=3]; 119 -> 135[label="",style="dashed", color="magenta", weight=3]; 120 -> 139[label="",style="dashed", color="red", weight=0]; 120[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];120 -> 140[label="",style="dashed", color="magenta", weight=3]; 120 -> 141[label="",style="dashed", color="magenta", weight=3]; 120 -> 142[label="",style="dashed", color="magenta", weight=3]; 121 -> 132[label="",style="dashed", color="red", weight=0]; 121[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 121 -> 137[label="",style="dashed", color="magenta", weight=3]; 121 -> 138[label="",style="dashed", color="magenta", weight=3]; 122 -> 139[label="",style="dashed", color="red", weight=0]; 122[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];122 -> 143[label="",style="dashed", color="magenta", weight=3]; 122 -> 144[label="",style="dashed", color="magenta", weight=3]; 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 123[label="primPlusNat vuz180 vuz400",fontsize=16,color="burlywood",shape="triangle"];1071[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];123 -> 1071[label="",style="solid", color="burlywood", weight=9]; 1071 -> 146[label="",style="solid", color="burlywood", weight=3]; 1072[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];123 -> 1072[label="",style="solid", color="burlywood", weight=9]; 1072 -> 147[label="",style="solid", color="burlywood", weight=3]; 124[label="Pos (Succ vuz1600)",fontsize=16,color="green",shape="box"];125[label="Pos Zero",fontsize=16,color="green",shape="box"];126[label="Neg (Succ vuz1600)",fontsize=16,color="green",shape="box"];127[label="Neg Zero",fontsize=16,color="green",shape="box"];128[label="primEqInt (Pos (Succ vuz17000)) (Pos Zero)",fontsize=16,color="black",shape="box"];128 -> 148[label="",style="solid", color="black", weight=3]; 129[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];129 -> 149[label="",style="solid", color="black", weight=3]; 130[label="primEqInt (Neg (Succ vuz17000)) (Pos Zero)",fontsize=16,color="black",shape="box"];130 -> 150[label="",style="solid", color="black", weight=3]; 131[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];131 -> 151[label="",style="solid", color="black", weight=3]; 133 -> 8[label="",style="dashed", color="red", weight=0]; 133[label="vuz13 * vuz14",fontsize=16,color="magenta"];133 -> 152[label="",style="dashed", color="magenta", weight=3]; 133 -> 153[label="",style="dashed", color="magenta", weight=3]; 134 -> 8[label="",style="dashed", color="red", weight=0]; 134[label="vuz11 * vuz12",fontsize=16,color="magenta"];134 -> 154[label="",style="dashed", color="magenta", weight=3]; 134 -> 155[label="",style="dashed", color="magenta", weight=3]; 135 -> 8[label="",style="dashed", color="red", weight=0]; 135[label="vuz11 * vuz12",fontsize=16,color="magenta"];135 -> 156[label="",style="dashed", color="magenta", weight=3]; 135 -> 157[label="",style="dashed", color="magenta", weight=3]; 132[label="vuz19 `quot` reduce2D vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1073[label="vuz19/Integer vuz190",fontsize=10,color="white",style="solid",shape="box"];132 -> 1073[label="",style="solid", color="burlywood", weight=9]; 1073 -> 158[label="",style="solid", color="burlywood", weight=3]; 140 -> 9[label="",style="dashed", color="red", weight=0]; 140[label="vuz13 * vuz14",fontsize=16,color="magenta"];140 -> 159[label="",style="dashed", color="magenta", weight=3]; 140 -> 160[label="",style="dashed", color="magenta", weight=3]; 141 -> 9[label="",style="dashed", color="red", weight=0]; 141[label="vuz11 * vuz12",fontsize=16,color="magenta"];141 -> 161[label="",style="dashed", color="magenta", weight=3]; 141 -> 162[label="",style="dashed", color="magenta", weight=3]; 142 -> 9[label="",style="dashed", color="red", weight=0]; 142[label="vuz11 * vuz12",fontsize=16,color="magenta"];142 -> 163[label="",style="dashed", color="magenta", weight=3]; 142 -> 164[label="",style="dashed", color="magenta", weight=3]; 139[label="vuz22 `quot` reduce2D vuz24 vuz23",fontsize=16,color="black",shape="triangle"];139 -> 165[label="",style="solid", color="black", weight=3]; 136 -> 8[label="",style="dashed", color="red", weight=0]; 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 166[label="",style="dashed", color="magenta", weight=3]; 136 -> 167[label="",style="dashed", color="magenta", weight=3]; 137 -> 8[label="",style="dashed", color="red", weight=0]; 137[label="vuz11 * vuz12",fontsize=16,color="magenta"];137 -> 168[label="",style="dashed", color="magenta", weight=3]; 137 -> 169[label="",style="dashed", color="magenta", weight=3]; 138 -> 8[label="",style="dashed", color="red", weight=0]; 138[label="vuz13 * vuz14",fontsize=16,color="magenta"];138 -> 170[label="",style="dashed", color="magenta", weight=3]; 138 -> 171[label="",style="dashed", color="magenta", weight=3]; 143 -> 9[label="",style="dashed", color="red", weight=0]; 143[label="vuz13 * vuz14",fontsize=16,color="magenta"];143 -> 172[label="",style="dashed", color="magenta", weight=3]; 143 -> 173[label="",style="dashed", color="magenta", weight=3]; 144 -> 9[label="",style="dashed", color="red", weight=0]; 144[label="vuz11 * vuz12",fontsize=16,color="magenta"];144 -> 174[label="",style="dashed", color="magenta", weight=3]; 144 -> 175[label="",style="dashed", color="magenta", weight=3]; 145 -> 9[label="",style="dashed", color="red", weight=0]; 145[label="vuz13 * vuz14",fontsize=16,color="magenta"];145 -> 176[label="",style="dashed", color="magenta", weight=3]; 145 -> 177[label="",style="dashed", color="magenta", weight=3]; 146[label="primPlusNat (Succ vuz1800) vuz400",fontsize=16,color="burlywood",shape="box"];1074[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];146 -> 1074[label="",style="solid", color="burlywood", weight=9]; 1074 -> 178[label="",style="solid", color="burlywood", weight=3]; 1075[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];146 -> 1075[label="",style="solid", color="burlywood", weight=9]; 1075 -> 179[label="",style="solid", color="burlywood", weight=3]; 147[label="primPlusNat Zero vuz400",fontsize=16,color="burlywood",shape="box"];1076[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];147 -> 1076[label="",style="solid", color="burlywood", weight=9]; 1076 -> 180[label="",style="solid", color="burlywood", weight=3]; 1077[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];147 -> 1077[label="",style="solid", color="burlywood", weight=9]; 1077 -> 181[label="",style="solid", color="burlywood", weight=3]; 148[label="False",fontsize=16,color="green",shape="box"];149[label="True",fontsize=16,color="green",shape="box"];150[label="False",fontsize=16,color="green",shape="box"];151[label="True",fontsize=16,color="green",shape="box"];152[label="vuz14",fontsize=16,color="green",shape="box"];153[label="vuz13",fontsize=16,color="green",shape="box"];154[label="vuz12",fontsize=16,color="green",shape="box"];155[label="vuz11",fontsize=16,color="green",shape="box"];156[label="vuz12",fontsize=16,color="green",shape="box"];157[label="vuz11",fontsize=16,color="green",shape="box"];158[label="Integer vuz190 `quot` reduce2D vuz21 vuz20",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 159[label="vuz14",fontsize=16,color="green",shape="box"];160[label="vuz13",fontsize=16,color="green",shape="box"];161[label="vuz12",fontsize=16,color="green",shape="box"];162[label="vuz11",fontsize=16,color="green",shape="box"];163[label="vuz12",fontsize=16,color="green",shape="box"];164[label="vuz11",fontsize=16,color="green",shape="box"];165[label="primQuotInt vuz22 (reduce2D vuz24 vuz23)",fontsize=16,color="burlywood",shape="box"];1078[label="vuz22/Pos vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1078[label="",style="solid", color="burlywood", weight=9]; 1078 -> 183[label="",style="solid", color="burlywood", weight=3]; 1079[label="vuz22/Neg vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1079[label="",style="solid", color="burlywood", weight=9]; 1079 -> 184[label="",style="solid", color="burlywood", weight=3]; 166[label="vuz14",fontsize=16,color="green",shape="box"];167[label="vuz13",fontsize=16,color="green",shape="box"];168[label="vuz12",fontsize=16,color="green",shape="box"];169[label="vuz11",fontsize=16,color="green",shape="box"];170[label="vuz14",fontsize=16,color="green",shape="box"];171[label="vuz13",fontsize=16,color="green",shape="box"];172[label="vuz14",fontsize=16,color="green",shape="box"];173[label="vuz13",fontsize=16,color="green",shape="box"];174[label="vuz12",fontsize=16,color="green",shape="box"];175[label="vuz11",fontsize=16,color="green",shape="box"];176[label="vuz14",fontsize=16,color="green",shape="box"];177[label="vuz13",fontsize=16,color="green",shape="box"];178[label="primPlusNat (Succ vuz1800) (Succ vuz4000)",fontsize=16,color="black",shape="box"];178 -> 185[label="",style="solid", color="black", weight=3]; 179[label="primPlusNat (Succ vuz1800) Zero",fontsize=16,color="black",shape="box"];179 -> 186[label="",style="solid", color="black", weight=3]; 180[label="primPlusNat Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];180 -> 187[label="",style="solid", color="black", weight=3]; 181[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];181 -> 188[label="",style="solid", color="black", weight=3]; 182 -> 276[label="",style="dashed", color="red", weight=0]; 182[label="Integer vuz190 `quot` gcd vuz21 vuz20",fontsize=16,color="magenta"];182 -> 277[label="",style="dashed", color="magenta", weight=3]; 183[label="primQuotInt (Pos vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];183 -> 190[label="",style="solid", color="black", weight=3]; 184[label="primQuotInt (Neg vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];184 -> 191[label="",style="solid", color="black", weight=3]; 185[label="Succ (Succ (primPlusNat vuz1800 vuz4000))",fontsize=16,color="green",shape="box"];185 -> 192[label="",style="dashed", color="green", weight=3]; 186[label="Succ vuz1800",fontsize=16,color="green",shape="box"];187[label="Succ vuz4000",fontsize=16,color="green",shape="box"];188[label="Zero",fontsize=16,color="green",shape="box"];277[label="gcd vuz21 vuz20",fontsize=16,color="black",shape="box"];277 -> 293[label="",style="solid", color="black", weight=3]; 276[label="Integer vuz190 `quot` vuz36",fontsize=16,color="burlywood",shape="triangle"];1080[label="vuz36/Integer vuz360",fontsize=10,color="white",style="solid",shape="box"];276 -> 1080[label="",style="solid", color="burlywood", weight=9]; 1080 -> 294[label="",style="solid", color="burlywood", weight=3]; 190 -> 312[label="",style="dashed", color="red", weight=0]; 190[label="primQuotInt (Pos vuz220) (gcd vuz24 vuz23)",fontsize=16,color="magenta"];190 -> 313[label="",style="dashed", color="magenta", weight=3]; 191[label="primQuotInt (Neg vuz220) (gcd vuz24 vuz23)",fontsize=16,color="black",shape="box"];191 -> 195[label="",style="solid", color="black", weight=3]; 192 -> 123[label="",style="dashed", color="red", weight=0]; 192[label="primPlusNat vuz1800 vuz4000",fontsize=16,color="magenta"];192 -> 196[label="",style="dashed", color="magenta", weight=3]; 192 -> 197[label="",style="dashed", color="magenta", weight=3]; 293[label="gcd3 vuz21 vuz20",fontsize=16,color="black",shape="box"];293 -> 300[label="",style="solid", color="black", weight=3]; 294[label="Integer vuz190 `quot` Integer vuz360",fontsize=16,color="black",shape="box"];294 -> 301[label="",style="solid", color="black", weight=3]; 313[label="gcd vuz24 vuz23",fontsize=16,color="black",shape="box"];313 -> 329[label="",style="solid", color="black", weight=3]; 312[label="primQuotInt (Pos vuz220) vuz40",fontsize=16,color="burlywood",shape="triangle"];1081[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1081[label="",style="solid", color="burlywood", weight=9]; 1081 -> 330[label="",style="solid", color="burlywood", weight=3]; 1082[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1082[label="",style="solid", color="burlywood", weight=9]; 1082 -> 331[label="",style="solid", color="burlywood", weight=3]; 195[label="primQuotInt (Neg vuz220) (gcd3 vuz24 vuz23)",fontsize=16,color="black",shape="box"];195 -> 201[label="",style="solid", color="black", weight=3]; 196[label="vuz1800",fontsize=16,color="green",shape="box"];197[label="vuz4000",fontsize=16,color="green",shape="box"];300 -> 306[label="",style="dashed", color="red", weight=0]; 300[label="gcd2 (vuz21 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];300 -> 307[label="",style="dashed", color="magenta", weight=3]; 301[label="Integer (primQuotInt vuz190 vuz360)",fontsize=16,color="green",shape="box"];301 -> 308[label="",style="dashed", color="green", weight=3]; 329[label="gcd3 vuz24 vuz23",fontsize=16,color="black",shape="box"];329 -> 341[label="",style="solid", color="black", weight=3]; 330[label="primQuotInt (Pos vuz220) (Pos vuz400)",fontsize=16,color="burlywood",shape="box"];1083[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];330 -> 1083[label="",style="solid", color="burlywood", weight=9]; 1083 -> 342[label="",style="solid", color="burlywood", weight=3]; 1084[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];330 -> 1084[label="",style="solid", color="burlywood", weight=9]; 1084 -> 343[label="",style="solid", color="burlywood", weight=3]; 331[label="primQuotInt (Pos vuz220) (Neg vuz400)",fontsize=16,color="burlywood",shape="box"];1085[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];331 -> 1085[label="",style="solid", color="burlywood", weight=9]; 1085 -> 344[label="",style="solid", color="burlywood", weight=3]; 1086[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];331 -> 1086[label="",style="solid", color="burlywood", weight=9]; 1086 -> 345[label="",style="solid", color="burlywood", weight=3]; 201 -> 207[label="",style="dashed", color="red", weight=0]; 201[label="primQuotInt (Neg vuz220) (gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];201 -> 208[label="",style="dashed", color="magenta", weight=3]; 307 -> 78[label="",style="dashed", color="red", weight=0]; 307[label="vuz21 == fromInt (Pos Zero)",fontsize=16,color="magenta"];307 -> 309[label="",style="dashed", color="magenta", weight=3]; 306[label="gcd2 vuz39 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1087[label="vuz39/False",fontsize=10,color="white",style="solid",shape="box"];306 -> 1087[label="",style="solid", color="burlywood", weight=9]; 1087 -> 310[label="",style="solid", color="burlywood", weight=3]; 1088[label="vuz39/True",fontsize=10,color="white",style="solid",shape="box"];306 -> 1088[label="",style="solid", color="burlywood", weight=9]; 1088 -> 311[label="",style="solid", color="burlywood", weight=3]; 308[label="primQuotInt vuz190 vuz360",fontsize=16,color="burlywood",shape="triangle"];1089[label="vuz190/Pos vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1089[label="",style="solid", color="burlywood", weight=9]; 1089 -> 332[label="",style="solid", color="burlywood", weight=3]; 1090[label="vuz190/Neg vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1090[label="",style="solid", color="burlywood", weight=9]; 1090 -> 333[label="",style="solid", color="burlywood", weight=3]; 341 -> 353[label="",style="dashed", color="red", weight=0]; 341[label="gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];341 -> 354[label="",style="dashed", color="magenta", weight=3]; 342[label="primQuotInt (Pos vuz220) (Pos (Succ vuz4000))",fontsize=16,color="black",shape="box"];342 -> 355[label="",style="solid", color="black", weight=3]; 343[label="primQuotInt (Pos vuz220) (Pos Zero)",fontsize=16,color="black",shape="box"];343 -> 356[label="",style="solid", color="black", weight=3]; 344[label="primQuotInt (Pos vuz220) (Neg (Succ vuz4000))",fontsize=16,color="black",shape="box"];344 -> 357[label="",style="solid", color="black", weight=3]; 345[label="primQuotInt (Pos vuz220) (Neg Zero)",fontsize=16,color="black",shape="box"];345 -> 358[label="",style="solid", color="black", weight=3]; 208 -> 76[label="",style="dashed", color="red", weight=0]; 208[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];208 -> 214[label="",style="dashed", color="magenta", weight=3]; 207[label="primQuotInt (Neg vuz220) (gcd2 vuz27 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1091[label="vuz27/False",fontsize=10,color="white",style="solid",shape="box"];207 -> 1091[label="",style="solid", color="burlywood", weight=9]; 1091 -> 215[label="",style="solid", color="burlywood", weight=3]; 1092[label="vuz27/True",fontsize=10,color="white",style="solid",shape="box"];207 -> 1092[label="",style="solid", color="burlywood", weight=9]; 1092 -> 216[label="",style="solid", color="burlywood", weight=3]; 309[label="vuz21",fontsize=16,color="green",shape="box"];310[label="gcd2 False vuz21 vuz20",fontsize=16,color="black",shape="box"];310 -> 334[label="",style="solid", color="black", weight=3]; 311[label="gcd2 True vuz21 vuz20",fontsize=16,color="black",shape="box"];311 -> 335[label="",style="solid", color="black", weight=3]; 332[label="primQuotInt (Pos vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1093[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1093[label="",style="solid", color="burlywood", weight=9]; 1093 -> 346[label="",style="solid", color="burlywood", weight=3]; 1094[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1094[label="",style="solid", color="burlywood", weight=9]; 1094 -> 347[label="",style="solid", color="burlywood", weight=3]; 333[label="primQuotInt (Neg vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1095[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1095[label="",style="solid", color="burlywood", weight=9]; 1095 -> 348[label="",style="solid", color="burlywood", weight=3]; 1096[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1096[label="",style="solid", color="burlywood", weight=9]; 1096 -> 349[label="",style="solid", color="burlywood", weight=3]; 354 -> 76[label="",style="dashed", color="red", weight=0]; 354[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];354 -> 359[label="",style="dashed", color="magenta", weight=3]; 353[label="gcd2 vuz42 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1097[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];353 -> 1097[label="",style="solid", color="burlywood", weight=9]; 1097 -> 360[label="",style="solid", color="burlywood", weight=3]; 1098[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];353 -> 1098[label="",style="solid", color="burlywood", weight=9]; 1098 -> 361[label="",style="solid", color="burlywood", weight=3]; 355[label="Pos (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];355 -> 377[label="",style="dashed", color="green", weight=3]; 356[label="error []",fontsize=16,color="black",shape="triangle"];356 -> 378[label="",style="solid", color="black", weight=3]; 357[label="Neg (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];357 -> 379[label="",style="dashed", color="green", weight=3]; 358 -> 356[label="",style="dashed", color="red", weight=0]; 358[label="error []",fontsize=16,color="magenta"];214[label="vuz24",fontsize=16,color="green",shape="box"];215[label="primQuotInt (Neg vuz220) (gcd2 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];215 -> 222[label="",style="solid", color="black", weight=3]; 216[label="primQuotInt (Neg vuz220) (gcd2 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];216 -> 223[label="",style="solid", color="black", weight=3]; 334[label="gcd0 vuz21 vuz20",fontsize=16,color="black",shape="triangle"];334 -> 350[label="",style="solid", color="black", weight=3]; 335 -> 351[label="",style="dashed", color="red", weight=0]; 335[label="gcd1 (vuz20 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];335 -> 352[label="",style="dashed", color="magenta", weight=3]; 346[label="primQuotInt (Pos vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1099[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];346 -> 1099[label="",style="solid", color="burlywood", weight=9]; 1099 -> 362[label="",style="solid", color="burlywood", weight=3]; 1100[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];346 -> 1100[label="",style="solid", color="burlywood", weight=9]; 1100 -> 363[label="",style="solid", color="burlywood", weight=3]; 347[label="primQuotInt (Pos vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1101[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];347 -> 1101[label="",style="solid", color="burlywood", weight=9]; 1101 -> 364[label="",style="solid", color="burlywood", weight=3]; 1102[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];347 -> 1102[label="",style="solid", color="burlywood", weight=9]; 1102 -> 365[label="",style="solid", color="burlywood", weight=3]; 348[label="primQuotInt (Neg vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1103[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];348 -> 1103[label="",style="solid", color="burlywood", weight=9]; 1103 -> 366[label="",style="solid", color="burlywood", weight=3]; 1104[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];348 -> 1104[label="",style="solid", color="burlywood", weight=9]; 1104 -> 367[label="",style="solid", color="burlywood", weight=3]; 349[label="primQuotInt (Neg vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1105[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];349 -> 1105[label="",style="solid", color="burlywood", weight=9]; 1105 -> 368[label="",style="solid", color="burlywood", weight=3]; 1106[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];349 -> 1106[label="",style="solid", color="burlywood", weight=9]; 1106 -> 369[label="",style="solid", color="burlywood", weight=3]; 359[label="vuz24",fontsize=16,color="green",shape="box"];360[label="gcd2 False vuz24 vuz23",fontsize=16,color="black",shape="box"];360 -> 380[label="",style="solid", color="black", weight=3]; 361[label="gcd2 True vuz24 vuz23",fontsize=16,color="black",shape="box"];361 -> 381[label="",style="solid", color="black", weight=3]; 377[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="burlywood",shape="triangle"];1107[label="vuz220/Succ vuz2200",fontsize=10,color="white",style="solid",shape="box"];377 -> 1107[label="",style="solid", color="burlywood", weight=9]; 1107 -> 397[label="",style="solid", color="burlywood", weight=3]; 1108[label="vuz220/Zero",fontsize=10,color="white",style="solid",shape="box"];377 -> 1108[label="",style="solid", color="burlywood", weight=9]; 1108 -> 398[label="",style="solid", color="burlywood", weight=3]; 378[label="error []",fontsize=16,color="red",shape="box"];379 -> 377[label="",style="dashed", color="red", weight=0]; 379[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="magenta"];379 -> 399[label="",style="dashed", color="magenta", weight=3]; 222[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="black",shape="triangle"];222 -> 231[label="",style="solid", color="black", weight=3]; 223 -> 232[label="",style="dashed", color="red", weight=0]; 223[label="primQuotInt (Neg vuz220) (gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];223 -> 233[label="",style="dashed", color="magenta", weight=3]; 350[label="gcd0Gcd' (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];350 -> 370[label="",style="solid", color="black", weight=3]; 352 -> 78[label="",style="dashed", color="red", weight=0]; 352[label="vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];352 -> 371[label="",style="dashed", color="magenta", weight=3]; 351[label="gcd1 vuz41 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1109[label="vuz41/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 1109[label="",style="solid", color="burlywood", weight=9]; 1109 -> 372[label="",style="solid", color="burlywood", weight=3]; 1110[label="vuz41/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 1110[label="",style="solid", color="burlywood", weight=9]; 1110 -> 373[label="",style="solid", color="burlywood", weight=3]; 362[label="primQuotInt (Pos vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];362 -> 382[label="",style="solid", color="black", weight=3]; 363[label="primQuotInt (Pos vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];363 -> 383[label="",style="solid", color="black", weight=3]; 364[label="primQuotInt (Pos vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];364 -> 384[label="",style="solid", color="black", weight=3]; 365[label="primQuotInt (Pos vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];365 -> 385[label="",style="solid", color="black", weight=3]; 366[label="primQuotInt (Neg vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];366 -> 386[label="",style="solid", color="black", weight=3]; 367[label="primQuotInt (Neg vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];367 -> 387[label="",style="solid", color="black", weight=3]; 368[label="primQuotInt (Neg vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];368 -> 388[label="",style="solid", color="black", weight=3]; 369[label="primQuotInt (Neg vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];369 -> 389[label="",style="solid", color="black", weight=3]; 380[label="gcd0 vuz24 vuz23",fontsize=16,color="black",shape="triangle"];380 -> 400[label="",style="solid", color="black", weight=3]; 381 -> 401[label="",style="dashed", color="red", weight=0]; 381[label="gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];381 -> 402[label="",style="dashed", color="magenta", weight=3]; 397[label="primDivNatS (Succ vuz2200) (Succ vuz4000)",fontsize=16,color="black",shape="box"];397 -> 403[label="",style="solid", color="black", weight=3]; 398[label="primDivNatS Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];398 -> 404[label="",style="solid", color="black", weight=3]; 399[label="vuz4000",fontsize=16,color="green",shape="box"];231[label="primQuotInt (Neg vuz220) (gcd0Gcd' (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];231 -> 241[label="",style="solid", color="black", weight=3]; 233 -> 76[label="",style="dashed", color="red", weight=0]; 233[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];233 -> 242[label="",style="dashed", color="magenta", weight=3]; 232[label="primQuotInt (Neg vuz220) (gcd1 vuz30 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1111[label="vuz30/False",fontsize=10,color="white",style="solid",shape="box"];232 -> 1111[label="",style="solid", color="burlywood", weight=9]; 1111 -> 243[label="",style="solid", color="burlywood", weight=3]; 1112[label="vuz30/True",fontsize=10,color="white",style="solid",shape="box"];232 -> 1112[label="",style="solid", color="burlywood", weight=9]; 1112 -> 244[label="",style="solid", color="burlywood", weight=3]; 370[label="gcd0Gcd'2 (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];370 -> 390[label="",style="solid", color="black", weight=3]; 371[label="vuz20",fontsize=16,color="green",shape="box"];372[label="gcd1 False vuz21 vuz20",fontsize=16,color="black",shape="box"];372 -> 391[label="",style="solid", color="black", weight=3]; 373[label="gcd1 True vuz21 vuz20",fontsize=16,color="black",shape="box"];373 -> 392[label="",style="solid", color="black", weight=3]; 382[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];382 -> 405[label="",style="dashed", color="green", weight=3]; 383 -> 356[label="",style="dashed", color="red", weight=0]; 383[label="error []",fontsize=16,color="magenta"];384[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];384 -> 406[label="",style="dashed", color="green", weight=3]; 385 -> 356[label="",style="dashed", color="red", weight=0]; 385[label="error []",fontsize=16,color="magenta"];386[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];386 -> 407[label="",style="dashed", color="green", weight=3]; 387 -> 356[label="",style="dashed", color="red", weight=0]; 387[label="error []",fontsize=16,color="magenta"];388[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];388 -> 408[label="",style="dashed", color="green", weight=3]; 389 -> 356[label="",style="dashed", color="red", weight=0]; 389[label="error []",fontsize=16,color="magenta"];400 -> 409[label="",style="dashed", color="red", weight=0]; 400[label="gcd0Gcd' (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];400 -> 410[label="",style="dashed", color="magenta", weight=3]; 400 -> 411[label="",style="dashed", color="magenta", weight=3]; 402 -> 76[label="",style="dashed", color="red", weight=0]; 402[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];402 -> 414[label="",style="dashed", color="magenta", weight=3]; 401[label="gcd1 vuz45 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1113[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];401 -> 1113[label="",style="solid", color="burlywood", weight=9]; 1113 -> 415[label="",style="solid", color="burlywood", weight=3]; 1114[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];401 -> 1114[label="",style="solid", color="burlywood", weight=9]; 1114 -> 416[label="",style="solid", color="burlywood", weight=3]; 403[label="primDivNatS0 vuz2200 vuz4000 (primGEqNatS vuz2200 vuz4000)",fontsize=16,color="burlywood",shape="box"];1115[label="vuz2200/Succ vuz22000",fontsize=10,color="white",style="solid",shape="box"];403 -> 1115[label="",style="solid", color="burlywood", weight=9]; 1115 -> 417[label="",style="solid", color="burlywood", weight=3]; 1116[label="vuz2200/Zero",fontsize=10,color="white",style="solid",shape="box"];403 -> 1116[label="",style="solid", color="burlywood", weight=9]; 1116 -> 418[label="",style="solid", color="burlywood", weight=3]; 404[label="Zero",fontsize=16,color="green",shape="box"];241[label="primQuotInt (Neg vuz220) (gcd0Gcd'2 (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];241 -> 251[label="",style="solid", color="black", weight=3]; 242[label="vuz23",fontsize=16,color="green",shape="box"];243[label="primQuotInt (Neg vuz220) (gcd1 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];243 -> 252[label="",style="solid", color="black", weight=3]; 244[label="primQuotInt (Neg vuz220) (gcd1 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];244 -> 253[label="",style="solid", color="black", weight=3]; 390 -> 419[label="",style="dashed", color="red", weight=0]; 390[label="gcd0Gcd'1 (abs vuz20 == fromInt (Pos Zero)) (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];390 -> 420[label="",style="dashed", color="magenta", weight=3]; 391 -> 334[label="",style="dashed", color="red", weight=0]; 391[label="gcd0 vuz21 vuz20",fontsize=16,color="magenta"];392[label="error []",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 405 -> 377[label="",style="dashed", color="red", weight=0]; 405[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];405 -> 422[label="",style="dashed", color="magenta", weight=3]; 405 -> 423[label="",style="dashed", color="magenta", weight=3]; 406 -> 377[label="",style="dashed", color="red", weight=0]; 406[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];406 -> 424[label="",style="dashed", color="magenta", weight=3]; 406 -> 425[label="",style="dashed", color="magenta", weight=3]; 407 -> 377[label="",style="dashed", color="red", weight=0]; 407[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];407 -> 426[label="",style="dashed", color="magenta", weight=3]; 407 -> 427[label="",style="dashed", color="magenta", weight=3]; 408 -> 377[label="",style="dashed", color="red", weight=0]; 408[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];408 -> 428[label="",style="dashed", color="magenta", weight=3]; 408 -> 429[label="",style="dashed", color="magenta", weight=3]; 410 -> 266[label="",style="dashed", color="red", weight=0]; 410[label="abs vuz24",fontsize=16,color="magenta"];410 -> 430[label="",style="dashed", color="magenta", weight=3]; 411 -> 266[label="",style="dashed", color="red", weight=0]; 411[label="abs vuz23",fontsize=16,color="magenta"];409[label="gcd0Gcd' vuz47 vuz46",fontsize=16,color="black",shape="triangle"];409 -> 431[label="",style="solid", color="black", weight=3]; 414[label="vuz23",fontsize=16,color="green",shape="box"];415[label="gcd1 False vuz24 vuz23",fontsize=16,color="black",shape="box"];415 -> 432[label="",style="solid", color="black", weight=3]; 416[label="gcd1 True vuz24 vuz23",fontsize=16,color="black",shape="box"];416 -> 433[label="",style="solid", color="black", weight=3]; 417[label="primDivNatS0 (Succ vuz22000) vuz4000 (primGEqNatS (Succ vuz22000) vuz4000)",fontsize=16,color="burlywood",shape="box"];1117[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];417 -> 1117[label="",style="solid", color="burlywood", weight=9]; 1117 -> 434[label="",style="solid", color="burlywood", weight=3]; 1118[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];417 -> 1118[label="",style="solid", color="burlywood", weight=9]; 1118 -> 435[label="",style="solid", color="burlywood", weight=3]; 418[label="primDivNatS0 Zero vuz4000 (primGEqNatS Zero vuz4000)",fontsize=16,color="burlywood",shape="box"];1119[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];418 -> 1119[label="",style="solid", color="burlywood", weight=9]; 1119 -> 436[label="",style="solid", color="burlywood", weight=3]; 1120[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 1120[label="",style="solid", color="burlywood", weight=9]; 1120 -> 437[label="",style="solid", color="burlywood", weight=3]; 251 -> 260[label="",style="dashed", color="red", weight=0]; 251[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 (abs vuz23 == fromInt (Pos Zero)) (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];251 -> 261[label="",style="dashed", color="magenta", weight=3]; 252 -> 222[label="",style="dashed", color="red", weight=0]; 252[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="magenta"];253[label="primQuotInt (Neg vuz220) (error [])",fontsize=16,color="black",shape="box"];253 -> 262[label="",style="solid", color="black", weight=3]; 420 -> 78[label="",style="dashed", color="red", weight=0]; 420[label="abs vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];420 -> 438[label="",style="dashed", color="magenta", weight=3]; 419[label="gcd0Gcd'1 vuz48 (abs vuz21) (abs vuz20)",fontsize=16,color="burlywood",shape="triangle"];1121[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];419 -> 1121[label="",style="solid", color="burlywood", weight=9]; 1121 -> 439[label="",style="solid", color="burlywood", weight=3]; 1122[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];419 -> 1122[label="",style="solid", color="burlywood", weight=9]; 1122 -> 440[label="",style="solid", color="burlywood", weight=3]; 421[label="error []",fontsize=16,color="red",shape="box"];422[label="vuz36000",fontsize=16,color="green",shape="box"];423[label="vuz1900",fontsize=16,color="green",shape="box"];424[label="vuz36000",fontsize=16,color="green",shape="box"];425[label="vuz1900",fontsize=16,color="green",shape="box"];426[label="vuz36000",fontsize=16,color="green",shape="box"];427[label="vuz1900",fontsize=16,color="green",shape="box"];428[label="vuz36000",fontsize=16,color="green",shape="box"];429[label="vuz1900",fontsize=16,color="green",shape="box"];430[label="vuz24",fontsize=16,color="green",shape="box"];266[label="abs vuz23",fontsize=16,color="black",shape="triangle"];266 -> 295[label="",style="solid", color="black", weight=3]; 431[label="gcd0Gcd'2 vuz47 vuz46",fontsize=16,color="black",shape="box"];431 -> 443[label="",style="solid", color="black", weight=3]; 432 -> 380[label="",style="dashed", color="red", weight=0]; 432[label="gcd0 vuz24 vuz23",fontsize=16,color="magenta"];433 -> 356[label="",style="dashed", color="red", weight=0]; 433[label="error []",fontsize=16,color="magenta"];434[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS (Succ vuz22000) (Succ vuz40000))",fontsize=16,color="black",shape="box"];434 -> 444[label="",style="solid", color="black", weight=3]; 435[label="primDivNatS0 (Succ vuz22000) Zero (primGEqNatS (Succ vuz22000) Zero)",fontsize=16,color="black",shape="box"];435 -> 445[label="",style="solid", color="black", weight=3]; 436[label="primDivNatS0 Zero (Succ vuz40000) (primGEqNatS Zero (Succ vuz40000))",fontsize=16,color="black",shape="box"];436 -> 446[label="",style="solid", color="black", weight=3]; 437[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];437 -> 447[label="",style="solid", color="black", weight=3]; 261 -> 76[label="",style="dashed", color="red", weight=0]; 261[label="abs vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];261 -> 269[label="",style="dashed", color="magenta", weight=3]; 260[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 vuz33 (abs vuz24) (abs vuz23))",fontsize=16,color="burlywood",shape="triangle"];1123[label="vuz33/False",fontsize=10,color="white",style="solid",shape="box"];260 -> 1123[label="",style="solid", color="burlywood", weight=9]; 1123 -> 270[label="",style="solid", color="burlywood", weight=3]; 1124[label="vuz33/True",fontsize=10,color="white",style="solid",shape="box"];260 -> 1124[label="",style="solid", color="burlywood", weight=9]; 1124 -> 271[label="",style="solid", color="burlywood", weight=3]; 262[label="error []",fontsize=16,color="red",shape="box"];438[label="abs vuz20",fontsize=16,color="black",shape="triangle"];438 -> 448[label="",style="solid", color="black", weight=3]; 439[label="gcd0Gcd'1 False (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];439 -> 449[label="",style="solid", color="black", weight=3]; 440[label="gcd0Gcd'1 True (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];440 -> 450[label="",style="solid", color="black", weight=3]; 295[label="absReal vuz23",fontsize=16,color="black",shape="box"];295 -> 302[label="",style="solid", color="black", weight=3]; 443 -> 454[label="",style="dashed", color="red", weight=0]; 443[label="gcd0Gcd'1 (vuz46 == fromInt (Pos Zero)) vuz47 vuz46",fontsize=16,color="magenta"];443 -> 455[label="",style="dashed", color="magenta", weight=3]; 444 -> 791[label="",style="dashed", color="red", weight=0]; 444[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS vuz22000 vuz40000)",fontsize=16,color="magenta"];444 -> 792[label="",style="dashed", color="magenta", weight=3]; 444 -> 793[label="",style="dashed", color="magenta", weight=3]; 444 -> 794[label="",style="dashed", color="magenta", weight=3]; 444 -> 795[label="",style="dashed", color="magenta", weight=3]; 445[label="primDivNatS0 (Succ vuz22000) Zero True",fontsize=16,color="black",shape="box"];445 -> 458[label="",style="solid", color="black", weight=3]; 446[label="primDivNatS0 Zero (Succ vuz40000) False",fontsize=16,color="black",shape="box"];446 -> 459[label="",style="solid", color="black", weight=3]; 447[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];447 -> 460[label="",style="solid", color="black", weight=3]; 269 -> 266[label="",style="dashed", color="red", weight=0]; 269[label="abs vuz23",fontsize=16,color="magenta"];270[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 False (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];270 -> 298[label="",style="solid", color="black", weight=3]; 271[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 True (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];271 -> 299[label="",style="solid", color="black", weight=3]; 448[label="absReal vuz20",fontsize=16,color="black",shape="box"];448 -> 461[label="",style="solid", color="black", weight=3]; 449 -> 462[label="",style="dashed", color="red", weight=0]; 449[label="gcd0Gcd'0 (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];449 -> 463[label="",style="dashed", color="magenta", weight=3]; 449 -> 464[label="",style="dashed", color="magenta", weight=3]; 450 -> 438[label="",style="dashed", color="red", weight=0]; 450[label="abs vuz21",fontsize=16,color="magenta"];450 -> 465[label="",style="dashed", color="magenta", weight=3]; 302[label="absReal2 vuz23",fontsize=16,color="black",shape="box"];302 -> 340[label="",style="solid", color="black", weight=3]; 455 -> 76[label="",style="dashed", color="red", weight=0]; 455[label="vuz46 == fromInt (Pos Zero)",fontsize=16,color="magenta"];455 -> 466[label="",style="dashed", color="magenta", weight=3]; 454[label="gcd0Gcd'1 vuz49 vuz47 vuz46",fontsize=16,color="burlywood",shape="triangle"];1125[label="vuz49/False",fontsize=10,color="white",style="solid",shape="box"];454 -> 1125[label="",style="solid", color="burlywood", weight=9]; 1125 -> 467[label="",style="solid", color="burlywood", weight=3]; 1126[label="vuz49/True",fontsize=10,color="white",style="solid",shape="box"];454 -> 1126[label="",style="solid", color="burlywood", weight=9]; 1126 -> 468[label="",style="solid", color="burlywood", weight=3]; 792[label="vuz22000",fontsize=16,color="green",shape="box"];793[label="vuz40000",fontsize=16,color="green",shape="box"];794[label="vuz40000",fontsize=16,color="green",shape="box"];795[label="vuz22000",fontsize=16,color="green",shape="box"];791[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz71 vuz72)",fontsize=16,color="burlywood",shape="triangle"];1127[label="vuz71/Succ vuz710",fontsize=10,color="white",style="solid",shape="box"];791 -> 1127[label="",style="solid", color="burlywood", weight=9]; 1127 -> 824[label="",style="solid", color="burlywood", weight=3]; 1128[label="vuz71/Zero",fontsize=10,color="white",style="solid",shape="box"];791 -> 1128[label="",style="solid", color="burlywood", weight=9]; 1128 -> 825[label="",style="solid", color="burlywood", weight=3]; 458[label="Succ (primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];458 -> 473[label="",style="dashed", color="green", weight=3]; 459[label="Zero",fontsize=16,color="green",shape="box"];460[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];460 -> 474[label="",style="dashed", color="green", weight=3]; 298 -> 308[label="",style="dashed", color="red", weight=0]; 298[label="primQuotInt (Neg vuz220) (gcd0Gcd'0 (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];298 -> 336[label="",style="dashed", color="magenta", weight=3]; 298 -> 337[label="",style="dashed", color="magenta", weight=3]; 299 -> 308[label="",style="dashed", color="red", weight=0]; 299[label="primQuotInt (Neg vuz220) (abs vuz24)",fontsize=16,color="magenta"];299 -> 338[label="",style="dashed", color="magenta", weight=3]; 299 -> 339[label="",style="dashed", color="magenta", weight=3]; 461[label="absReal2 vuz20",fontsize=16,color="black",shape="box"];461 -> 475[label="",style="solid", color="black", weight=3]; 463 -> 438[label="",style="dashed", color="red", weight=0]; 463[label="abs vuz21",fontsize=16,color="magenta"];463 -> 476[label="",style="dashed", color="magenta", weight=3]; 464 -> 438[label="",style="dashed", color="red", weight=0]; 464[label="abs vuz20",fontsize=16,color="magenta"];462[label="gcd0Gcd'0 vuz51 vuz50",fontsize=16,color="black",shape="triangle"];462 -> 477[label="",style="solid", color="black", weight=3]; 465[label="vuz21",fontsize=16,color="green",shape="box"];340[label="absReal1 vuz23 (vuz23 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];340 -> 396[label="",style="solid", color="black", weight=3]; 466[label="vuz46",fontsize=16,color="green",shape="box"];467[label="gcd0Gcd'1 False vuz47 vuz46",fontsize=16,color="black",shape="box"];467 -> 484[label="",style="solid", color="black", weight=3]; 468[label="gcd0Gcd'1 True vuz47 vuz46",fontsize=16,color="black",shape="box"];468 -> 485[label="",style="solid", color="black", weight=3]; 824[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) vuz72)",fontsize=16,color="burlywood",shape="box"];1129[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];824 -> 1129[label="",style="solid", color="burlywood", weight=9]; 1129 -> 832[label="",style="solid", color="burlywood", weight=3]; 1130[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];824 -> 1130[label="",style="solid", color="burlywood", weight=9]; 1130 -> 833[label="",style="solid", color="burlywood", weight=3]; 825[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero vuz72)",fontsize=16,color="burlywood",shape="box"];1131[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];825 -> 1131[label="",style="solid", color="burlywood", weight=9]; 1131 -> 834[label="",style="solid", color="burlywood", weight=3]; 1132[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];825 -> 1132[label="",style="solid", color="burlywood", weight=9]; 1132 -> 835[label="",style="solid", color="burlywood", weight=3]; 473 -> 377[label="",style="dashed", color="red", weight=0]; 473[label="primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero)",fontsize=16,color="magenta"];473 -> 490[label="",style="dashed", color="magenta", weight=3]; 473 -> 491[label="",style="dashed", color="magenta", weight=3]; 474 -> 377[label="",style="dashed", color="red", weight=0]; 474[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];474 -> 492[label="",style="dashed", color="magenta", weight=3]; 474 -> 493[label="",style="dashed", color="magenta", weight=3]; 336[label="Neg vuz220",fontsize=16,color="green",shape="box"];337 -> 374[label="",style="dashed", color="red", weight=0]; 337[label="gcd0Gcd'0 (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];337 -> 375[label="",style="dashed", color="magenta", weight=3]; 337 -> 376[label="",style="dashed", color="magenta", weight=3]; 338[label="Neg vuz220",fontsize=16,color="green",shape="box"];339 -> 266[label="",style="dashed", color="red", weight=0]; 339[label="abs vuz24",fontsize=16,color="magenta"];339 -> 393[label="",style="dashed", color="magenta", weight=3]; 475[label="absReal1 vuz20 (vuz20 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];475 -> 494[label="",style="solid", color="black", weight=3]; 476[label="vuz21",fontsize=16,color="green",shape="box"];477[label="gcd0Gcd' vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];477 -> 495[label="",style="solid", color="black", weight=3]; 396[label="absReal1 vuz23 (compare vuz23 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];396 -> 441[label="",style="solid", color="black", weight=3]; 484 -> 374[label="",style="dashed", color="red", weight=0]; 484[label="gcd0Gcd'0 vuz47 vuz46",fontsize=16,color="magenta"];484 -> 508[label="",style="dashed", color="magenta", weight=3]; 484 -> 509[label="",style="dashed", color="magenta", weight=3]; 485[label="vuz47",fontsize=16,color="green",shape="box"];832[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) (Succ vuz720))",fontsize=16,color="black",shape="box"];832 -> 844[label="",style="solid", color="black", weight=3]; 833[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) Zero)",fontsize=16,color="black",shape="box"];833 -> 845[label="",style="solid", color="black", weight=3]; 834[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero (Succ vuz720))",fontsize=16,color="black",shape="box"];834 -> 846[label="",style="solid", color="black", weight=3]; 835[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];835 -> 847[label="",style="solid", color="black", weight=3]; 490[label="Zero",fontsize=16,color="green",shape="box"];491[label="primMinusNatS (Succ vuz22000) Zero",fontsize=16,color="black",shape="triangle"];491 -> 515[label="",style="solid", color="black", weight=3]; 492[label="Zero",fontsize=16,color="green",shape="box"];493[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];493 -> 516[label="",style="solid", color="black", weight=3]; 375 -> 266[label="",style="dashed", color="red", weight=0]; 375[label="abs vuz24",fontsize=16,color="magenta"];375 -> 394[label="",style="dashed", color="magenta", weight=3]; 376 -> 266[label="",style="dashed", color="red", weight=0]; 376[label="abs vuz23",fontsize=16,color="magenta"];374[label="gcd0Gcd'0 vuz44 vuz43",fontsize=16,color="black",shape="triangle"];374 -> 395[label="",style="solid", color="black", weight=3]; 393[label="vuz24",fontsize=16,color="green",shape="box"];494[label="absReal1 vuz20 (compare vuz20 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];494 -> 517[label="",style="solid", color="black", weight=3]; 495[label="gcd0Gcd'2 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];495 -> 518[label="",style="solid", color="black", weight=3]; 441[label="absReal1 vuz23 (not (compare vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];441 -> 451[label="",style="solid", color="black", weight=3]; 508[label="vuz47",fontsize=16,color="green",shape="box"];509[label="vuz46",fontsize=16,color="green",shape="box"];844 -> 791[label="",style="dashed", color="red", weight=0]; 844[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz710 vuz720)",fontsize=16,color="magenta"];844 -> 854[label="",style="dashed", color="magenta", weight=3]; 844 -> 855[label="",style="dashed", color="magenta", weight=3]; 845[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="black",shape="triangle"];845 -> 856[label="",style="solid", color="black", weight=3]; 846[label="primDivNatS0 (Succ vuz69) (Succ vuz70) False",fontsize=16,color="black",shape="box"];846 -> 857[label="",style="solid", color="black", weight=3]; 847 -> 845[label="",style="dashed", color="red", weight=0]; 847[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="magenta"];515[label="Succ vuz22000",fontsize=16,color="green",shape="box"];516[label="Zero",fontsize=16,color="green",shape="box"];394[label="vuz24",fontsize=16,color="green",shape="box"];395 -> 409[label="",style="dashed", color="red", weight=0]; 395[label="gcd0Gcd' vuz43 (vuz44 `rem` vuz43)",fontsize=16,color="magenta"];395 -> 412[label="",style="dashed", color="magenta", weight=3]; 395 -> 413[label="",style="dashed", color="magenta", weight=3]; 517[label="absReal1 vuz20 (not (compare vuz20 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1133[label="vuz20/Integer vuz200",fontsize=10,color="white",style="solid",shape="box"];517 -> 1133[label="",style="solid", color="burlywood", weight=9]; 1133 -> 537[label="",style="solid", color="burlywood", weight=3]; 518 -> 538[label="",style="dashed", color="red", weight=0]; 518[label="gcd0Gcd'1 (vuz51 `rem` vuz50 == fromInt (Pos Zero)) vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];518 -> 539[label="",style="dashed", color="magenta", weight=3]; 451[label="absReal1 vuz23 (not (primCmpInt vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1134[label="vuz23/Pos vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1134[label="",style="solid", color="burlywood", weight=9]; 1134 -> 478[label="",style="solid", color="burlywood", weight=3]; 1135[label="vuz23/Neg vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1135[label="",style="solid", color="burlywood", weight=9]; 1135 -> 479[label="",style="solid", color="burlywood", weight=3]; 854[label="vuz710",fontsize=16,color="green",shape="box"];855[label="vuz720",fontsize=16,color="green",shape="box"];856[label="Succ (primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70)))",fontsize=16,color="green",shape="box"];856 -> 864[label="",style="dashed", color="green", weight=3]; 857[label="Zero",fontsize=16,color="green",shape="box"];412[label="vuz43",fontsize=16,color="green",shape="box"];413[label="vuz44 `rem` vuz43",fontsize=16,color="black",shape="box"];413 -> 442[label="",style="solid", color="black", weight=3]; 537[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];537 -> 548[label="",style="solid", color="black", weight=3]; 539 -> 78[label="",style="dashed", color="red", weight=0]; 539[label="vuz51 `rem` vuz50 == fromInt (Pos Zero)",fontsize=16,color="magenta"];539 -> 549[label="",style="dashed", color="magenta", weight=3]; 538[label="gcd0Gcd'1 vuz52 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="burlywood",shape="triangle"];1136[label="vuz52/False",fontsize=10,color="white",style="solid",shape="box"];538 -> 1136[label="",style="solid", color="burlywood", weight=9]; 1136 -> 550[label="",style="solid", color="burlywood", weight=3]; 1137[label="vuz52/True",fontsize=10,color="white",style="solid",shape="box"];538 -> 1137[label="",style="solid", color="burlywood", weight=9]; 1137 -> 551[label="",style="solid", color="burlywood", weight=3]; 478[label="absReal1 (Pos vuz230) (not (primCmpInt (Pos vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1138[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];478 -> 1138[label="",style="solid", color="burlywood", weight=9]; 1138 -> 496[label="",style="solid", color="burlywood", weight=3]; 1139[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];478 -> 1139[label="",style="solid", color="burlywood", weight=9]; 1139 -> 497[label="",style="solid", color="burlywood", weight=3]; 479[label="absReal1 (Neg vuz230) (not (primCmpInt (Neg vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1140[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];479 -> 1140[label="",style="solid", color="burlywood", weight=9]; 1140 -> 498[label="",style="solid", color="burlywood", weight=3]; 1141[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];479 -> 1141[label="",style="solid", color="burlywood", weight=9]; 1141 -> 499[label="",style="solid", color="burlywood", weight=3]; 864 -> 377[label="",style="dashed", color="red", weight=0]; 864[label="primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70))",fontsize=16,color="magenta"];864 -> 873[label="",style="dashed", color="magenta", weight=3]; 864 -> 874[label="",style="dashed", color="magenta", weight=3]; 442[label="primRemInt vuz44 vuz43",fontsize=16,color="burlywood",shape="triangle"];1142[label="vuz44/Pos vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1142[label="",style="solid", color="burlywood", weight=9]; 1142 -> 452[label="",style="solid", color="burlywood", weight=3]; 1143[label="vuz44/Neg vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1143[label="",style="solid", color="burlywood", weight=9]; 1143 -> 453[label="",style="solid", color="burlywood", weight=3]; 548[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];548 -> 567[label="",style="solid", color="black", weight=3]; 549[label="vuz51 `rem` vuz50",fontsize=16,color="burlywood",shape="triangle"];1144[label="vuz51/Integer vuz510",fontsize=10,color="white",style="solid",shape="box"];549 -> 1144[label="",style="solid", color="burlywood", weight=9]; 1144 -> 568[label="",style="solid", color="burlywood", weight=3]; 550[label="gcd0Gcd'1 False vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];550 -> 569[label="",style="solid", color="black", weight=3]; 551[label="gcd0Gcd'1 True vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];551 -> 570[label="",style="solid", color="black", weight=3]; 496[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];496 -> 519[label="",style="solid", color="black", weight=3]; 497[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];497 -> 520[label="",style="solid", color="black", weight=3]; 498[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];498 -> 521[label="",style="solid", color="black", weight=3]; 499[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];499 -> 522[label="",style="solid", color="black", weight=3]; 873[label="Succ vuz70",fontsize=16,color="green",shape="box"];874[label="primMinusNatS (Succ vuz69) (Succ vuz70)",fontsize=16,color="black",shape="triangle"];874 -> 881[label="",style="solid", color="black", weight=3]; 452[label="primRemInt (Pos vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1145[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1145[label="",style="solid", color="burlywood", weight=9]; 1145 -> 480[label="",style="solid", color="burlywood", weight=3]; 1146[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1146[label="",style="solid", color="burlywood", weight=9]; 1146 -> 481[label="",style="solid", color="burlywood", weight=3]; 453[label="primRemInt (Neg vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1147[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1147[label="",style="solid", color="burlywood", weight=9]; 1147 -> 482[label="",style="solid", color="burlywood", weight=3]; 1148[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1148[label="",style="solid", color="burlywood", weight=9]; 1148 -> 483[label="",style="solid", color="burlywood", weight=3]; 567[label="absReal1 (Integer vuz200) (not (primCmpInt vuz200 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1149[label="vuz200/Pos vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1149[label="",style="solid", color="burlywood", weight=9]; 1149 -> 588[label="",style="solid", color="burlywood", weight=3]; 1150[label="vuz200/Neg vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1150[label="",style="solid", color="burlywood", weight=9]; 1150 -> 589[label="",style="solid", color="burlywood", weight=3]; 568[label="Integer vuz510 `rem` vuz50",fontsize=16,color="burlywood",shape="box"];1151[label="vuz50/Integer vuz500",fontsize=10,color="white",style="solid",shape="box"];568 -> 1151[label="",style="solid", color="burlywood", weight=9]; 1151 -> 590[label="",style="solid", color="burlywood", weight=3]; 569 -> 462[label="",style="dashed", color="red", weight=0]; 569[label="gcd0Gcd'0 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];569 -> 591[label="",style="dashed", color="magenta", weight=3]; 569 -> 592[label="",style="dashed", color="magenta", weight=3]; 570[label="vuz50",fontsize=16,color="green",shape="box"];519[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];519 -> 552[label="",style="solid", color="black", weight=3]; 520[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];520 -> 553[label="",style="solid", color="black", weight=3]; 521[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];521 -> 554[label="",style="solid", color="black", weight=3]; 522[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];522 -> 555[label="",style="solid", color="black", weight=3]; 881[label="primMinusNatS vuz69 vuz70",fontsize=16,color="burlywood",shape="triangle"];1152[label="vuz69/Succ vuz690",fontsize=10,color="white",style="solid",shape="box"];881 -> 1152[label="",style="solid", color="burlywood", weight=9]; 1152 -> 891[label="",style="solid", color="burlywood", weight=3]; 1153[label="vuz69/Zero",fontsize=10,color="white",style="solid",shape="box"];881 -> 1153[label="",style="solid", color="burlywood", weight=9]; 1153 -> 892[label="",style="solid", color="burlywood", weight=3]; 480[label="primRemInt (Pos vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1154[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];480 -> 1154[label="",style="solid", color="burlywood", weight=9]; 1154 -> 500[label="",style="solid", color="burlywood", weight=3]; 1155[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];480 -> 1155[label="",style="solid", color="burlywood", weight=9]; 1155 -> 501[label="",style="solid", color="burlywood", weight=3]; 481[label="primRemInt (Pos vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1156[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];481 -> 1156[label="",style="solid", color="burlywood", weight=9]; 1156 -> 502[label="",style="solid", color="burlywood", weight=3]; 1157[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];481 -> 1157[label="",style="solid", color="burlywood", weight=9]; 1157 -> 503[label="",style="solid", color="burlywood", weight=3]; 482[label="primRemInt (Neg vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1158[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];482 -> 1158[label="",style="solid", color="burlywood", weight=9]; 1158 -> 504[label="",style="solid", color="burlywood", weight=3]; 1159[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];482 -> 1159[label="",style="solid", color="burlywood", weight=9]; 1159 -> 505[label="",style="solid", color="burlywood", weight=3]; 483[label="primRemInt (Neg vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1160[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];483 -> 1160[label="",style="solid", color="burlywood", weight=9]; 1160 -> 506[label="",style="solid", color="burlywood", weight=3]; 1161[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];483 -> 1161[label="",style="solid", color="burlywood", weight=9]; 1161 -> 507[label="",style="solid", color="burlywood", weight=3]; 588[label="absReal1 (Integer (Pos vuz2000)) (not (primCmpInt (Pos vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1162[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];588 -> 1162[label="",style="solid", color="burlywood", weight=9]; 1162 -> 607[label="",style="solid", color="burlywood", weight=3]; 1163[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];588 -> 1163[label="",style="solid", color="burlywood", weight=9]; 1163 -> 608[label="",style="solid", color="burlywood", weight=3]; 589[label="absReal1 (Integer (Neg vuz2000)) (not (primCmpInt (Neg vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1164[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];589 -> 1164[label="",style="solid", color="burlywood", weight=9]; 1164 -> 609[label="",style="solid", color="burlywood", weight=3]; 1165[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 1165[label="",style="solid", color="burlywood", weight=9]; 1165 -> 610[label="",style="solid", color="burlywood", weight=3]; 590[label="Integer vuz510 `rem` Integer vuz500",fontsize=16,color="black",shape="box"];590 -> 611[label="",style="solid", color="black", weight=3]; 591[label="vuz50",fontsize=16,color="green",shape="box"];592 -> 549[label="",style="dashed", color="red", weight=0]; 592[label="vuz51 `rem` vuz50",fontsize=16,color="magenta"];552[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpNat (Succ vuz2300) Zero == LT))",fontsize=16,color="black",shape="box"];552 -> 571[label="",style="solid", color="black", weight=3]; 553[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];553 -> 572[label="",style="solid", color="black", weight=3]; 554[label="absReal1 (Neg (Succ vuz2300)) (not (LT == LT))",fontsize=16,color="black",shape="box"];554 -> 573[label="",style="solid", color="black", weight=3]; 555[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];555 -> 574[label="",style="solid", color="black", weight=3]; 891[label="primMinusNatS (Succ vuz690) vuz70",fontsize=16,color="burlywood",shape="box"];1166[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];891 -> 1166[label="",style="solid", color="burlywood", weight=9]; 1166 -> 901[label="",style="solid", color="burlywood", weight=3]; 1167[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];891 -> 1167[label="",style="solid", color="burlywood", weight=9]; 1167 -> 902[label="",style="solid", color="burlywood", weight=3]; 892[label="primMinusNatS Zero vuz70",fontsize=16,color="burlywood",shape="box"];1168[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];892 -> 1168[label="",style="solid", color="burlywood", weight=9]; 1168 -> 903[label="",style="solid", color="burlywood", weight=3]; 1169[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];892 -> 1169[label="",style="solid", color="burlywood", weight=9]; 1169 -> 904[label="",style="solid", color="burlywood", weight=3]; 500[label="primRemInt (Pos vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];500 -> 523[label="",style="solid", color="black", weight=3]; 501[label="primRemInt (Pos vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];501 -> 524[label="",style="solid", color="black", weight=3]; 502[label="primRemInt (Pos vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];502 -> 525[label="",style="solid", color="black", weight=3]; 503[label="primRemInt (Pos vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];503 -> 526[label="",style="solid", color="black", weight=3]; 504[label="primRemInt (Neg vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];504 -> 527[label="",style="solid", color="black", weight=3]; 505[label="primRemInt (Neg vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];505 -> 528[label="",style="solid", color="black", weight=3]; 506[label="primRemInt (Neg vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];506 -> 529[label="",style="solid", color="black", weight=3]; 507[label="primRemInt (Neg vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];507 -> 530[label="",style="solid", color="black", weight=3]; 607[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpInt (Pos (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];607 -> 625[label="",style="solid", color="black", weight=3]; 608[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];608 -> 626[label="",style="solid", color="black", weight=3]; 609[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (primCmpInt (Neg (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];609 -> 627[label="",style="solid", color="black", weight=3]; 610[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];610 -> 628[label="",style="solid", color="black", weight=3]; 611[label="Integer (primRemInt vuz510 vuz500)",fontsize=16,color="green",shape="box"];611 -> 629[label="",style="dashed", color="green", weight=3]; 571[label="absReal1 (Pos (Succ vuz2300)) (not (GT == LT))",fontsize=16,color="black",shape="box"];571 -> 593[label="",style="solid", color="black", weight=3]; 572[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];572 -> 594[label="",style="solid", color="black", weight=3]; 573[label="absReal1 (Neg (Succ vuz2300)) (not True)",fontsize=16,color="black",shape="box"];573 -> 595[label="",style="solid", color="black", weight=3]; 574[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];574 -> 596[label="",style="solid", color="black", weight=3]; 901[label="primMinusNatS (Succ vuz690) (Succ vuz700)",fontsize=16,color="black",shape="box"];901 -> 913[label="",style="solid", color="black", weight=3]; 902[label="primMinusNatS (Succ vuz690) Zero",fontsize=16,color="black",shape="box"];902 -> 914[label="",style="solid", color="black", weight=3]; 903[label="primMinusNatS Zero (Succ vuz700)",fontsize=16,color="black",shape="box"];903 -> 915[label="",style="solid", color="black", weight=3]; 904[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];904 -> 916[label="",style="solid", color="black", weight=3]; 523[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];523 -> 556[label="",style="dashed", color="green", weight=3]; 524 -> 356[label="",style="dashed", color="red", weight=0]; 524[label="error []",fontsize=16,color="magenta"];525[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];525 -> 557[label="",style="dashed", color="green", weight=3]; 526 -> 356[label="",style="dashed", color="red", weight=0]; 526[label="error []",fontsize=16,color="magenta"];527[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];527 -> 558[label="",style="dashed", color="green", weight=3]; 528 -> 356[label="",style="dashed", color="red", weight=0]; 528[label="error []",fontsize=16,color="magenta"];529[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];529 -> 559[label="",style="dashed", color="green", weight=3]; 530 -> 356[label="",style="dashed", color="red", weight=0]; 530[label="error []",fontsize=16,color="magenta"];625[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpNat (Succ vuz20000) Zero == LT))",fontsize=16,color="black",shape="box"];625 -> 643[label="",style="solid", color="black", weight=3]; 626[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];626 -> 644[label="",style="solid", color="black", weight=3]; 627[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];627 -> 645[label="",style="solid", color="black", weight=3]; 628[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];628 -> 646[label="",style="solid", color="black", weight=3]; 629 -> 442[label="",style="dashed", color="red", weight=0]; 629[label="primRemInt vuz510 vuz500",fontsize=16,color="magenta"];629 -> 647[label="",style="dashed", color="magenta", weight=3]; 629 -> 648[label="",style="dashed", color="magenta", weight=3]; 593[label="absReal1 (Pos (Succ vuz2300)) (not False)",fontsize=16,color="black",shape="box"];593 -> 612[label="",style="solid", color="black", weight=3]; 594[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];594 -> 613[label="",style="solid", color="black", weight=3]; 595[label="absReal1 (Neg (Succ vuz2300)) False",fontsize=16,color="black",shape="box"];595 -> 614[label="",style="solid", color="black", weight=3]; 596[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];596 -> 615[label="",style="solid", color="black", weight=3]; 913 -> 881[label="",style="dashed", color="red", weight=0]; 913[label="primMinusNatS vuz690 vuz700",fontsize=16,color="magenta"];913 -> 921[label="",style="dashed", color="magenta", weight=3]; 913 -> 922[label="",style="dashed", color="magenta", weight=3]; 914[label="Succ vuz690",fontsize=16,color="green",shape="box"];915[label="Zero",fontsize=16,color="green",shape="box"];916[label="Zero",fontsize=16,color="green",shape="box"];556[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="burlywood",shape="triangle"];1170[label="vuz440/Succ vuz4400",fontsize=10,color="white",style="solid",shape="box"];556 -> 1170[label="",style="solid", color="burlywood", weight=9]; 1170 -> 575[label="",style="solid", color="burlywood", weight=3]; 1171[label="vuz440/Zero",fontsize=10,color="white",style="solid",shape="box"];556 -> 1171[label="",style="solid", color="burlywood", weight=9]; 1171 -> 576[label="",style="solid", color="burlywood", weight=3]; 557 -> 556[label="",style="dashed", color="red", weight=0]; 557[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];557 -> 577[label="",style="dashed", color="magenta", weight=3]; 558 -> 556[label="",style="dashed", color="red", weight=0]; 558[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];558 -> 578[label="",style="dashed", color="magenta", weight=3]; 559 -> 556[label="",style="dashed", color="red", weight=0]; 559[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];559 -> 579[label="",style="dashed", color="magenta", weight=3]; 559 -> 580[label="",style="dashed", color="magenta", weight=3]; 643[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];643 -> 662[label="",style="solid", color="black", weight=3]; 644[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];644 -> 663[label="",style="solid", color="black", weight=3]; 645[label="absReal1 (Integer (Neg (Succ vuz20000))) (not True)",fontsize=16,color="black",shape="box"];645 -> 664[label="",style="solid", color="black", weight=3]; 646[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];646 -> 665[label="",style="solid", color="black", weight=3]; 647[label="vuz510",fontsize=16,color="green",shape="box"];648[label="vuz500",fontsize=16,color="green",shape="box"];612[label="absReal1 (Pos (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];612 -> 630[label="",style="solid", color="black", weight=3]; 613[label="Pos Zero",fontsize=16,color="green",shape="box"];614[label="absReal0 (Neg (Succ vuz2300)) otherwise",fontsize=16,color="black",shape="box"];614 -> 631[label="",style="solid", color="black", weight=3]; 615[label="Neg Zero",fontsize=16,color="green",shape="box"];921[label="vuz700",fontsize=16,color="green",shape="box"];922[label="vuz690",fontsize=16,color="green",shape="box"];575[label="primModNatS (Succ vuz4400) (Succ vuz4300)",fontsize=16,color="black",shape="box"];575 -> 597[label="",style="solid", color="black", weight=3]; 576[label="primModNatS Zero (Succ vuz4300)",fontsize=16,color="black",shape="box"];576 -> 598[label="",style="solid", color="black", weight=3]; 577[label="vuz4300",fontsize=16,color="green",shape="box"];578[label="vuz440",fontsize=16,color="green",shape="box"];579[label="vuz440",fontsize=16,color="green",shape="box"];580[label="vuz4300",fontsize=16,color="green",shape="box"];662[label="absReal1 (Integer (Pos (Succ vuz20000))) (not False)",fontsize=16,color="black",shape="box"];662 -> 679[label="",style="solid", color="black", weight=3]; 663[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];663 -> 680[label="",style="solid", color="black", weight=3]; 664[label="absReal1 (Integer (Neg (Succ vuz20000))) False",fontsize=16,color="black",shape="box"];664 -> 681[label="",style="solid", color="black", weight=3]; 665[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];665 -> 682[label="",style="solid", color="black", weight=3]; 630[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];631[label="absReal0 (Neg (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];631 -> 649[label="",style="solid", color="black", weight=3]; 597[label="primModNatS0 vuz4400 vuz4300 (primGEqNatS vuz4400 vuz4300)",fontsize=16,color="burlywood",shape="box"];1172[label="vuz4400/Succ vuz44000",fontsize=10,color="white",style="solid",shape="box"];597 -> 1172[label="",style="solid", color="burlywood", weight=9]; 1172 -> 616[label="",style="solid", color="burlywood", weight=3]; 1173[label="vuz4400/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 1173[label="",style="solid", color="burlywood", weight=9]; 1173 -> 617[label="",style="solid", color="burlywood", weight=3]; 598[label="Zero",fontsize=16,color="green",shape="box"];679[label="absReal1 (Integer (Pos (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];679 -> 699[label="",style="solid", color="black", weight=3]; 680[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];681[label="absReal0 (Integer (Neg (Succ vuz20000))) otherwise",fontsize=16,color="black",shape="box"];681 -> 700[label="",style="solid", color="black", weight=3]; 682[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];649[label="`negate` Neg (Succ vuz2300)",fontsize=16,color="black",shape="box"];649 -> 666[label="",style="solid", color="black", weight=3]; 616[label="primModNatS0 (Succ vuz44000) vuz4300 (primGEqNatS (Succ vuz44000) vuz4300)",fontsize=16,color="burlywood",shape="box"];1174[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];616 -> 1174[label="",style="solid", color="burlywood", weight=9]; 1174 -> 632[label="",style="solid", color="burlywood", weight=3]; 1175[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 1175[label="",style="solid", color="burlywood", weight=9]; 1175 -> 633[label="",style="solid", color="burlywood", weight=3]; 617[label="primModNatS0 Zero vuz4300 (primGEqNatS Zero vuz4300)",fontsize=16,color="burlywood",shape="box"];1176[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];617 -> 1176[label="",style="solid", color="burlywood", weight=9]; 1176 -> 634[label="",style="solid", color="burlywood", weight=3]; 1177[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 1177[label="",style="solid", color="burlywood", weight=9]; 1177 -> 635[label="",style="solid", color="burlywood", weight=3]; 699[label="Integer (Pos (Succ vuz20000))",fontsize=16,color="green",shape="box"];700[label="absReal0 (Integer (Neg (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];700 -> 714[label="",style="solid", color="black", weight=3]; 666[label="primNegInt (Neg (Succ vuz2300))",fontsize=16,color="black",shape="triangle"];666 -> 683[label="",style="solid", color="black", weight=3]; 632[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS (Succ vuz44000) (Succ vuz43000))",fontsize=16,color="black",shape="box"];632 -> 650[label="",style="solid", color="black", weight=3]; 633[label="primModNatS0 (Succ vuz44000) Zero (primGEqNatS (Succ vuz44000) Zero)",fontsize=16,color="black",shape="box"];633 -> 651[label="",style="solid", color="black", weight=3]; 634[label="primModNatS0 Zero (Succ vuz43000) (primGEqNatS Zero (Succ vuz43000))",fontsize=16,color="black",shape="box"];634 -> 652[label="",style="solid", color="black", weight=3]; 635[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];635 -> 653[label="",style="solid", color="black", weight=3]; 714[label="`negate` Integer (Neg (Succ vuz20000))",fontsize=16,color="black",shape="box"];714 -> 734[label="",style="solid", color="black", weight=3]; 683[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];650 -> 972[label="",style="dashed", color="red", weight=0]; 650[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS vuz44000 vuz43000)",fontsize=16,color="magenta"];650 -> 973[label="",style="dashed", color="magenta", weight=3]; 650 -> 974[label="",style="dashed", color="magenta", weight=3]; 650 -> 975[label="",style="dashed", color="magenta", weight=3]; 650 -> 976[label="",style="dashed", color="magenta", weight=3]; 651[label="primModNatS0 (Succ vuz44000) Zero True",fontsize=16,color="black",shape="box"];651 -> 669[label="",style="solid", color="black", weight=3]; 652[label="primModNatS0 Zero (Succ vuz43000) False",fontsize=16,color="black",shape="box"];652 -> 670[label="",style="solid", color="black", weight=3]; 653[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];653 -> 671[label="",style="solid", color="black", weight=3]; 734[label="Integer (primNegInt (Neg (Succ vuz20000)))",fontsize=16,color="green",shape="box"];734 -> 764[label="",style="dashed", color="green", weight=3]; 973[label="vuz44000",fontsize=16,color="green",shape="box"];974[label="vuz43000",fontsize=16,color="green",shape="box"];975[label="vuz44000",fontsize=16,color="green",shape="box"];976[label="vuz43000",fontsize=16,color="green",shape="box"];972[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz91 vuz92)",fontsize=16,color="burlywood",shape="triangle"];1178[label="vuz91/Succ vuz910",fontsize=10,color="white",style="solid",shape="box"];972 -> 1178[label="",style="solid", color="burlywood", weight=9]; 1178 -> 1005[label="",style="solid", color="burlywood", weight=3]; 1179[label="vuz91/Zero",fontsize=10,color="white",style="solid",shape="box"];972 -> 1179[label="",style="solid", color="burlywood", weight=9]; 1179 -> 1006[label="",style="solid", color="burlywood", weight=3]; 669 -> 556[label="",style="dashed", color="red", weight=0]; 669[label="primModNatS (primMinusNatS (Succ vuz44000) Zero) (Succ Zero)",fontsize=16,color="magenta"];669 -> 688[label="",style="dashed", color="magenta", weight=3]; 669 -> 689[label="",style="dashed", color="magenta", weight=3]; 670[label="Succ Zero",fontsize=16,color="green",shape="box"];671 -> 556[label="",style="dashed", color="red", weight=0]; 671[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];671 -> 690[label="",style="dashed", color="magenta", weight=3]; 671 -> 691[label="",style="dashed", color="magenta", weight=3]; 764 -> 666[label="",style="dashed", color="red", weight=0]; 764[label="primNegInt (Neg (Succ vuz20000))",fontsize=16,color="magenta"];764 -> 778[label="",style="dashed", color="magenta", weight=3]; 1005[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) vuz92)",fontsize=16,color="burlywood",shape="box"];1180[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1180[label="",style="solid", color="burlywood", weight=9]; 1180 -> 1007[label="",style="solid", color="burlywood", weight=3]; 1181[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1181[label="",style="solid", color="burlywood", weight=9]; 1181 -> 1008[label="",style="solid", color="burlywood", weight=3]; 1006[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero vuz92)",fontsize=16,color="burlywood",shape="box"];1182[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1182[label="",style="solid", color="burlywood", weight=9]; 1182 -> 1009[label="",style="solid", color="burlywood", weight=3]; 1183[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1183[label="",style="solid", color="burlywood", weight=9]; 1183 -> 1010[label="",style="solid", color="burlywood", weight=3]; 688 -> 491[label="",style="dashed", color="red", weight=0]; 688[label="primMinusNatS (Succ vuz44000) Zero",fontsize=16,color="magenta"];688 -> 705[label="",style="dashed", color="magenta", weight=3]; 689[label="Zero",fontsize=16,color="green",shape="box"];690 -> 493[label="",style="dashed", color="red", weight=0]; 690[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];691[label="Zero",fontsize=16,color="green",shape="box"];778[label="vuz20000",fontsize=16,color="green",shape="box"];1007[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) (Succ vuz920))",fontsize=16,color="black",shape="box"];1007 -> 1011[label="",style="solid", color="black", weight=3]; 1008[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) Zero)",fontsize=16,color="black",shape="box"];1008 -> 1012[label="",style="solid", color="black", weight=3]; 1009[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero (Succ vuz920))",fontsize=16,color="black",shape="box"];1009 -> 1013[label="",style="solid", color="black", weight=3]; 1010[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1010 -> 1014[label="",style="solid", color="black", weight=3]; 705[label="vuz44000",fontsize=16,color="green",shape="box"];1011 -> 972[label="",style="dashed", color="red", weight=0]; 1011[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz910 vuz920)",fontsize=16,color="magenta"];1011 -> 1015[label="",style="dashed", color="magenta", weight=3]; 1011 -> 1016[label="",style="dashed", color="magenta", weight=3]; 1012[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="black",shape="triangle"];1012 -> 1017[label="",style="solid", color="black", weight=3]; 1013[label="primModNatS0 (Succ vuz89) (Succ vuz90) False",fontsize=16,color="black",shape="box"];1013 -> 1018[label="",style="solid", color="black", weight=3]; 1014 -> 1012[label="",style="dashed", color="red", weight=0]; 1014[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="magenta"];1015[label="vuz910",fontsize=16,color="green",shape="box"];1016[label="vuz920",fontsize=16,color="green",shape="box"];1017 -> 556[label="",style="dashed", color="red", weight=0]; 1017[label="primModNatS (primMinusNatS (Succ vuz89) (Succ vuz90)) (Succ (Succ vuz90))",fontsize=16,color="magenta"];1017 -> 1019[label="",style="dashed", color="magenta", weight=3]; 1017 -> 1020[label="",style="dashed", color="magenta", weight=3]; 1018[label="Succ (Succ vuz89)",fontsize=16,color="green",shape="box"];1019 -> 881[label="",style="dashed", color="red", weight=0]; 1019[label="primMinusNatS (Succ vuz89) (Succ vuz90)",fontsize=16,color="magenta"];1019 -> 1021[label="",style="dashed", color="magenta", weight=3]; 1019 -> 1022[label="",style="dashed", color="magenta", weight=3]; 1020[label="Succ vuz90",fontsize=16,color="green",shape="box"];1021[label="Succ vuz90",fontsize=16,color="green",shape="box"];1022[label="Succ vuz89",fontsize=16,color="green",shape="box"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz44000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz44000), Zero) new_primModNatS(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS0(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) new_primModNatS0(vuz89, vuz90, Zero, Zero) -> new_primModNatS00(vuz89, vuz90) new_primModNatS00(vuz89, vuz90) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (15) Complex Obligation (AND) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS0(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) new_primModNatS0(vuz89, vuz90, Zero, Zero) -> new_primModNatS00(vuz89, vuz90) new_primModNatS00(vuz89, vuz90) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primModNatS(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS0(vuz44000, vuz43000, vuz44000, vuz43000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS(x_1, x_2)) = x_1 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) new_primModNatS0(vuz89, vuz90, Zero, Zero) -> new_primModNatS00(vuz89, vuz90) new_primModNatS00(vuz89, vuz90) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (22) YES ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz44000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz44000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primModNatS(Succ(Succ(vuz44000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz44000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(new_primModNatS(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (25) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'(vuz47, vuz46) -> new_gcd0Gcd'1(new_esEs(vuz46), vuz47, vuz46) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz1600))) -> new_primEqInt(Neg(Succ(vuz1600))) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_esEs(Pos(Succ(vuz1600))) -> new_primEqInt(Pos(Succ(vuz1600))) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_esEs(Neg(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_esEs(Neg(Zero)) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'(vuz47, vuz46) -> new_gcd0Gcd'1(new_esEs(vuz46), vuz47, vuz46) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))),new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0)))) (new_gcd0Gcd'(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero)),new_gcd0Gcd'(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero))) (new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))),new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0)))) (new_gcd0Gcd'(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero)),new_gcd0Gcd'(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero))) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero)) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz1600))) -> new_primEqInt(Neg(Succ(vuz1600))) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_esEs(Pos(Succ(vuz1600))) -> new_primEqInt(Pos(Succ(vuz1600))) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_esEs(Neg(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_esEs(Neg(Zero)) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz1600))) -> new_primEqInt(Neg(Succ(vuz1600))) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_esEs(Pos(Succ(vuz1600))) -> new_primEqInt(Pos(Succ(vuz1600))) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_esEs(Neg(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_esEs(Neg(Zero)) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz17000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_esEs(Neg(Succ(x0))) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_esEs(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_esEs(Neg(Zero)) new_primModNatS02(x0, 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(Succ(x0))) new_esEs(Neg(Succ(x0))) new_esEs(Pos(Zero)) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz17000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz17000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz17000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz17000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, 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(Pos(Zero)) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Neg(Zero)) new_primEqInt(Pos(Succ(x0))) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (49) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, x2, x3) -> new_gcd0Gcd'0(x2, x3), new_gcd0Gcd'0(x4, x5) -> new_gcd0Gcd'(x5, new_primRemInt(x4, x5)) which results in the following constraint: (1) (new_gcd0Gcd'0(x2, x3)=new_gcd0Gcd'0(x4, x5) ==> new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, x3)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, x3)) For Pair new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) the following chains were created: *We consider the chain new_gcd0Gcd'0(x14, x15) -> new_gcd0Gcd'(x15, new_primRemInt(x14, x15)), new_gcd0Gcd'(x16, Neg(Succ(x17))) -> new_gcd0Gcd'1(False, x16, Neg(Succ(x17))) which results in the following constraint: (1) (new_gcd0Gcd'(x15, new_primRemInt(x14, x15))=new_gcd0Gcd'(x16, Neg(Succ(x17))) ==> new_gcd0Gcd'0(x14, x15)_>=_new_gcd0Gcd'(x15, new_primRemInt(x14, x15))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primRemInt(x14, x15)=Neg(Succ(x17)) ==> new_gcd0Gcd'0(x14, x15)_>=_new_gcd0Gcd'(x15, new_primRemInt(x14, x15))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x14, x15)=Neg(Succ(x17)) which results in the following new constraints: (3) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x46), Neg(Zero))_>=_new_gcd0Gcd'(Neg(Zero), new_primRemInt(Neg(x46), Neg(Zero)))) (4) (Neg(new_primModNatS1(x48, x47))=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x48), Pos(Succ(x47)))_>=_new_gcd0Gcd'(Pos(Succ(x47)), new_primRemInt(Neg(x48), Pos(Succ(x47))))) (5) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Pos(x49), Pos(Zero))_>=_new_gcd0Gcd'(Pos(Zero), new_primRemInt(Pos(x49), Pos(Zero)))) (6) (Neg(new_primModNatS1(x51, x50))=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x51), Neg(Succ(x50)))_>=_new_gcd0Gcd'(Neg(Succ(x50)), new_primRemInt(Neg(x51), Neg(Succ(x50))))) (7) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Pos(x52), Neg(Zero))_>=_new_gcd0Gcd'(Neg(Zero), new_primRemInt(Pos(x52), Neg(Zero)))) (8) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x53), Pos(Zero))_>=_new_gcd0Gcd'(Pos(Zero), new_primRemInt(Neg(x53), Pos(Zero)))) We solved constraint (3) using rule (V) (with possible (I) afterwards).We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (9) (new_primModNatS1(x48, x47)=Succ(x17) ==> new_gcd0Gcd'0(Neg(x48), Pos(Succ(x47)))_>=_new_gcd0Gcd'(Pos(Succ(x47)), new_primRemInt(Neg(x48), Pos(Succ(x47))))) We solved constraint (5) using rule (V) (with possible (I) afterwards).We simplified constraint (6) using rules (I), (II) which results in the following new constraint: (10) (new_primModNatS1(x51, x50)=Succ(x17) ==> new_gcd0Gcd'0(Neg(x51), Neg(Succ(x50)))_>=_new_gcd0Gcd'(Neg(Succ(x50)), new_primRemInt(Neg(x51), Neg(Succ(x50))))) We solved constraint (7) using rule (V) (with possible (I) afterwards).We solved constraint (8) using rule (V) (with possible (I) afterwards).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x48, x47)=Succ(x17) which results in the following new constraints: (11) (Succ(Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x54))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x54))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x54)))))) (12) (new_primModNatS1(new_primMinusNatS0(x56), Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x56))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x56))), Pos(Succ(Zero))))) (13) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) (14) (new_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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) *(new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, x3)) *new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x54))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x54))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x54)))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x65))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x65))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x65)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x56))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x56))), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x63))), Pos(Succ(Succ(x64))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x64))), new_primRemInt(Neg(Succ(Succ(x63))), Pos(Succ(Succ(x64)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x67))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x67))), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x74))), Neg(Succ(Succ(x75))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x75))), new_primRemInt(Neg(Succ(Succ(x74))), Neg(Succ(Succ(x75)))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x88))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x88))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x88)))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x99))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x99))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x99)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x90))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x90))), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x97))), Neg(Succ(Succ(x98))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x98))), new_primRemInt(Pos(Succ(Succ(x97))), Neg(Succ(Succ(x98)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x101))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x101))), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x108))), Pos(Succ(Succ(x109))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x109))), new_primRemInt(Pos(Succ(Succ(x108))), Pos(Succ(Succ(x109)))))) *new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) *(new_gcd0Gcd'(x22, Neg(Succ(x23)))_>=_new_gcd0Gcd'1(False, x22, Neg(Succ(x23)))) *new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) *(new_gcd0Gcd'(x32, Pos(Succ(x33)))_>=_new_gcd0Gcd'1(False, x32, Pos(Succ(x33)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error)) (new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error)) (new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error)) (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error)) ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS02(x0, 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS02(x0, 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(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'(Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (301) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (302) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vuz4300) -> Zero ---------------------------------------- (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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vuz4300) -> Zero ---------------------------------------- (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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) ---------------------------------------- (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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, x56, x57) -> new_gcd0Gcd'0(x56, x57), new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x58))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x56, x57)=new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58)))) ==> new_gcd0Gcd'1(False, x56, x57)_>=_new_gcd0Gcd'0(x56, x57)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x58))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58))))) *We consider the chain new_gcd0Gcd'1(False, x59, x60) -> new_gcd0Gcd'0(x59, x60), new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x61))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x59, x60)=new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61)))) ==> new_gcd0Gcd'1(False, x59, x60)_>=_new_gcd0Gcd'0(x59, x60)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x61))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61))))) *We consider the chain new_gcd0Gcd'1(False, x62, x63) -> new_gcd0Gcd'0(x62, x63), new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x64))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x62, x63)=new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64)))) ==> new_gcd0Gcd'1(False, x62, x63)_>=_new_gcd0Gcd'0(x62, x63)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x64))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64))))) *We consider the chain new_gcd0Gcd'1(False, x67, x68) -> new_gcd0Gcd'0(x67, x68), new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x69))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x67, x68)=new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69)))) ==> new_gcd0Gcd'1(False, x67, x68)_>=_new_gcd0Gcd'0(x67, x68)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x69))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69))))) *We consider the chain new_gcd0Gcd'1(False, x70, x71) -> new_gcd0Gcd'0(x70, x71), new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x72)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x70, x71)=new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72))))) ==> new_gcd0Gcd'1(False, x70, x71)_>=_new_gcd0Gcd'0(x70, x71)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))) *We consider the chain new_gcd0Gcd'1(False, x73, x74) -> new_gcd0Gcd'0(x73, x74), new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x75)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x73, x74)=new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75))))) ==> new_gcd0Gcd'1(False, x73, x74)_>=_new_gcd0Gcd'0(x73, x74)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))) *We consider the chain new_gcd0Gcd'1(False, x76, x77) -> new_gcd0Gcd'0(x76, x77), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x78)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x76, x77)=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78))))) ==> new_gcd0Gcd'1(False, x76, x77)_>=_new_gcd0Gcd'0(x76, x77)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))) *We consider the chain new_gcd0Gcd'1(False, x79, x80) -> new_gcd0Gcd'0(x79, x80), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x81)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x79, x80)=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81))))) ==> new_gcd0Gcd'1(False, x79, x80)_>=_new_gcd0Gcd'0(x79, x80)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))) *We consider the chain new_gcd0Gcd'1(False, x82, x83) -> new_gcd0Gcd'0(x82, x83), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x85))))), Pos(new_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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x58))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58))))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x61))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61))))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x64))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64))))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x69))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85))))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x88))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x88))))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x91))))), 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, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) 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(vuz22000)), Succ(vuz40000)) -> new_primDivNatS0(vuz22000, vuz40000, vuz22000, vuz40000) new_primDivNatS0(vuz69, vuz70, Zero, Zero) -> new_primDivNatS00(vuz69, vuz70) new_primDivNatS(Succ(Succ(vuz22000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz22000), Zero) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Succ(vuz720)) -> new_primDivNatS0(vuz69, vuz70, vuz710, vuz720) new_primDivNatS00(vuz69, vuz70) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS1, Zero) The TRS R consists of the following rules: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (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(vuz22000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz22000), Zero) The TRS R consists of the following rules: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (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(vuz22000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz22000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + x_2 POL(new_primMinusNatS3(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 ---------------------------------------- (332) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (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(vuz69, vuz70, Zero, Zero) -> new_primDivNatS00(vuz69, vuz70) new_primDivNatS00(vuz69, vuz70) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS(Succ(Succ(vuz22000)), Succ(vuz40000)) -> new_primDivNatS0(vuz22000, vuz40000, vuz22000, vuz40000) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Succ(vuz720)) -> new_primDivNatS0(vuz69, vuz70, vuz710, vuz720) The TRS R consists of the following rules: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (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(vuz69, vuz70) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primDivNatS(Succ(Succ(vuz22000)), Succ(vuz40000)) -> new_primDivNatS0(vuz22000, vuz40000, vuz22000, vuz40000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Succ(vuz720)) -> new_primDivNatS0(vuz69, vuz70, vuz710, vuz720) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primDivNatS0(vuz69, vuz70, Zero, Zero) -> new_primDivNatS00(vuz69, vuz70) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 *new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) ---------------------------------------- (337) YES ---------------------------------------- (338) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vuz300), Succ(vuz400)) -> new_primMulNat(vuz300, Succ(vuz400)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (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(vuz300), Succ(vuz400)) -> new_primMulNat(vuz300, Succ(vuz400)) 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_primMinusNatS(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS(vuz690, vuz700) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (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_primMinusNatS(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS(vuz690, vuz700) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (343) YES ---------------------------------------- (344) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz170)) -> new_primEqInt(vuz170) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (345) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (346) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz170)) -> new_primEqInt(vuz170) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (347) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) the following chains were created: *We consider the chain new_gcd0Gcd'00(x2, x3) -> new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2), new_gcd0Gcd'10(False, x4, x5) -> new_gcd0Gcd'00(x4, new_rem(x5, x4)) which results in the following constraint: (1) (new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)=new_gcd0Gcd'10(False, x4, x5) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_rem(x2, x3)=x12 & new_esEs0(x12)=False ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_esEs0(x12)=False which results in the following new constraint: (3) (new_primEqInt(x13)=False & new_rem(x2, x3)=Integer(x13) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x13)=False which results in the following new constraints: (4) (False=False & new_rem(x2, x3)=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) (5) (False=False & new_rem(x2, x3)=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (6) (new_rem(x2, x3)=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (5) using rules (I), (II) which results in the following new constraint: (7) (new_rem(x2, x3)=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_rem(x2, x3)=Integer(Pos(Succ(x14))) which results in the following new constraint: (8) (Integer(new_primRemInt(x17, x16))=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'00(Integer(x17), Integer(x16))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x17), Integer(x16))), Integer(x16), Integer(x17))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (9) (new_primRemInt(x17, x16)=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(x17), Integer(x16))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x17), Integer(x16))), Integer(x16), Integer(x17))) We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x17, x16)=Pos(Succ(x14)) which results in the following new constraints: (10) (Pos(new_primModNatS1(x19, x18))=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) (11) (Pos(new_primModNatS1(x21, x20))=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) (12) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Neg(x22)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x22)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x22)))) (13) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x25)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x25)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x25)))) (14) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x28)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x28)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x28)))) (15) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Neg(x29)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x29)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x29)))) We simplified constraint (10) using rules (I), (II), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'00(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) We simplified constraint (11) using rules (I), (II), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'00(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (18) (new_gcd0Gcd'00(Integer(Neg(x22)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x22)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x22)))) We simplified constraint (13) using rule (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Pos(x25)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x25)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x25)))) We simplified constraint (14) using rule (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Pos(x28)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x28)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x28)))) We simplified constraint (15) using rule (IV) which results in the following new constraint: (21) (new_gcd0Gcd'00(Integer(Neg(x29)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x29)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x29)))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_rem(x2, x3)=Integer(Neg(Succ(x15))) which results in the following new constraint: (22) (Integer(new_primRemInt(x31, x30))=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'00(Integer(x31), Integer(x30))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x31), Integer(x30))), Integer(x30), Integer(x31))) We simplified constraint (22) using rules (I), (II) which results in the following new constraint: (23) (new_primRemInt(x31, x30)=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(x31), Integer(x30))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x31), Integer(x30))), Integer(x30), Integer(x31))) We simplified constraint (23) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x31, x30)=Neg(Succ(x15)) which results in the following new constraints: (24) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x36)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x36)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x36)))) (25) (Neg(new_primModNatS1(x38, x37))=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x38)), Integer(Pos(Succ(x37))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x38)), Integer(Pos(Succ(x37))))), Integer(Pos(Succ(x37))), Integer(Neg(x38)))) (26) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Pos(x39)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x39)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x39)))) (27) (Neg(new_primModNatS1(x41, x40))=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x41)), Integer(Neg(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Neg(Succ(x40))))), Integer(Neg(Succ(x40))), Integer(Neg(x41)))) (28) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Pos(x42)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x42)))) (29) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x43)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x43)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x43)))) We simplified constraint (24) using rule (IV) which results in the following new constraint: (30) (new_gcd0Gcd'00(Integer(Neg(x36)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x36)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x36)))) We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint: (31) (new_gcd0Gcd'00(Integer(Neg(x38)), Integer(Pos(Succ(x37))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x38)), Integer(Pos(Succ(x37))))), Integer(Pos(Succ(x37))), Integer(Neg(x38)))) We simplified constraint (26) using rule (IV) which results in the following new constraint: (32) (new_gcd0Gcd'00(Integer(Pos(x39)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x39)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x39)))) We simplified constraint (27) using rules (I), (II), (IV) which results in the following new constraint: (33) (new_gcd0Gcd'00(Integer(Neg(x41)), Integer(Neg(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Neg(Succ(x40))))), Integer(Neg(Succ(x40))), Integer(Neg(x41)))) We simplified constraint (28) using rule (IV) which results in the following new constraint: (34) (new_gcd0Gcd'00(Integer(Pos(x42)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x42)))) We solved constraint (29) using rule (IV). For Pair new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, x6, x7) -> new_gcd0Gcd'00(x6, new_rem(x7, x6)), new_gcd0Gcd'00(x8, x9) -> new_gcd0Gcd'10(new_esEs0(new_rem(x8, x9)), x9, x8) which results in the following constraint: (1) (new_gcd0Gcd'00(x6, new_rem(x7, x6))=new_gcd0Gcd'00(x8, x9) ==> new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'00(x6, new_rem(x7, x6))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'00(x6, new_rem(x7, x6))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) *(new_gcd0Gcd'00(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) *(new_gcd0Gcd'00(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) *(new_gcd0Gcd'00(Integer(Neg(x22)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x22)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x22)))) *(new_gcd0Gcd'00(Integer(Pos(x25)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x25)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x25)))) *(new_gcd0Gcd'00(Integer(Pos(x28)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x28)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x28)))) *(new_gcd0Gcd'00(Integer(Neg(x29)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x29)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x29)))) *(new_gcd0Gcd'00(Integer(Neg(x36)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x36)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x36)))) *(new_gcd0Gcd'00(Integer(Neg(x38)), Integer(Pos(Succ(x37))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x38)), Integer(Pos(Succ(x37))))), Integer(Pos(Succ(x37))), Integer(Neg(x38)))) *(new_gcd0Gcd'00(Integer(Pos(x39)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x39)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x39)))) *(new_gcd0Gcd'00(Integer(Neg(x41)), Integer(Neg(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Neg(Succ(x40))))), Integer(Neg(Succ(x40))), Integer(Neg(x41)))) *(new_gcd0Gcd'00(Integer(Pos(x42)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x42)))) *new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) *(new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'00(x6, new_rem(x7, x6))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (348) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz170)) -> new_primEqInt(vuz170) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (349) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)),new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0))) ---------------------------------------- (350) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz170)) -> new_primEqInt(vuz170) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (351) 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))) ---------------------------------------- (352) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Zero, vuz4300) -> Zero new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz170)) -> new_primEqInt(vuz170) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (353) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (354) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (355) QReductionProof (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)) ---------------------------------------- (356) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (357) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))),new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1)))) ---------------------------------------- (358) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (359) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (360) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (361) QReductionProof (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)) ---------------------------------------- (362) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (363) 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)))) ---------------------------------------- (364) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (365) 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)))) ---------------------------------------- (366) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (367) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (368) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (369) 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)))) ---------------------------------------- (370) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (371) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (372) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (373) 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)))) ---------------------------------------- (374) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (375) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (376) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (377) 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)))) ---------------------------------------- (378) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (379) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (380) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (381) 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))) ---------------------------------------- (382) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error)) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error)) new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error)) new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (383) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. ---------------------------------------- (384) Complex Obligation (AND) ---------------------------------------- (385) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (386) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (387) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (388) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (389) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (390) 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))))) ---------------------------------------- (391) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (392) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (393) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (394) 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))))) ---------------------------------------- (395) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (396) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (397) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (398) 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))))) ---------------------------------------- (399) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (400) 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)))))) ---------------------------------------- (401) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (402) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (403) Complex Obligation (AND) ---------------------------------------- (404) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (405) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (406) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (407) QReductionProof (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_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (408) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (409) 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)))))) ---------------------------------------- (410) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (411) 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))))) ---------------------------------------- (412) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (413) 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))))) ---------------------------------------- (414) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (415) 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))))) ---------------------------------------- (416) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (417) 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))))) ---------------------------------------- (418) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (419) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (420) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (421) 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)))))) ---------------------------------------- (422) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (423) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (424) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (425) 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))))))) ---------------------------------------- (426) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (427) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Neg(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (428) YES ---------------------------------------- (429) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (430) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (431) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (432) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (433) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (434) 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)))))) ---------------------------------------- (435) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (436) 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)))))) ---------------------------------------- (437) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (438) 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))))))) ---------------------------------------- (439) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (440) 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)))))) ---------------------------------------- (441) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (442) 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)))))) ---------------------------------------- (443) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (444) 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))))))) ---------------------------------------- (445) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (446) 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)))))) ---------------------------------------- (447) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (448) 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))))))) ---------------------------------------- (449) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (450) 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)))))) ---------------------------------------- (451) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (452) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (453) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (454) 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)))))) ---------------------------------------- (455) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (456) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (457) Complex Obligation (AND) ---------------------------------------- (458) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (459) 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)))))) ---------------------------------------- (460) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (461) 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)))))) ---------------------------------------- (462) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (463) 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)))))) ---------------------------------------- (464) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (465) 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))) ---------------------------------------- (466) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (467) 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. ---------------------------------------- (468) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (469) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (470) 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))) ---------------------------------------- (471) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (472) 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. ---------------------------------------- (473) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (474) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (475) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (476) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (477) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (478) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (479) 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))))) ---------------------------------------- (480) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (481) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (482) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (483) 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))))) ---------------------------------------- (484) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (485) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (486) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (487) 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))))) ---------------------------------------- (488) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (489) 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)))))) ---------------------------------------- (490) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (491) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (492) Complex Obligation (AND) ---------------------------------------- (493) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (494) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (495) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (496) QReductionProof (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_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (497) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (498) 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)))))) ---------------------------------------- (499) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (500) 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))))) ---------------------------------------- (501) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (502) 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))))) ---------------------------------------- (503) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (504) 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))))) ---------------------------------------- (505) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (506) 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))))) ---------------------------------------- (507) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (508) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (509) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (510) 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)))))) ---------------------------------------- (511) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (512) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (513) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (514) 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))))))) ---------------------------------------- (515) 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(vuz17000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (516) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (517) YES ---------------------------------------- (518) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (519) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (520) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (521) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (522) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (523) 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)))))) ---------------------------------------- (524) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (525) 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)))))) ---------------------------------------- (526) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (527) 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))))))) ---------------------------------------- (528) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (529) 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)))))) ---------------------------------------- (530) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (531) 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)))))) ---------------------------------------- (532) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (533) 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))))))) ---------------------------------------- (534) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (535) 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)))))) ---------------------------------------- (536) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (537) 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))))))) ---------------------------------------- (538) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (539) 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)))))) ---------------------------------------- (540) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (541) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (542) Obligation: Q DP problem: The TRS P consists of the following rules: new_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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (543) 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)))))) ---------------------------------------- (544) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (545) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (546) Complex Obligation (AND) ---------------------------------------- (547) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (548) 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)))))) ---------------------------------------- (549) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (550) 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)))))) ---------------------------------------- (551) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (552) 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)))))) ---------------------------------------- (553) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (554) 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)) ---------------------------------------- (555) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (556) 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. ---------------------------------------- (557) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (558) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (559) 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)) ---------------------------------------- (560) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (561) 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. ---------------------------------------- (562) 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(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (563) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (564) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (565) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (566) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (567) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (568) 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))))) ---------------------------------------- (569) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (570) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (571) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (572) 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))))) ---------------------------------------- (573) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (574) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (575) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (576) 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))))) ---------------------------------------- (577) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (578) 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)))))) ---------------------------------------- (579) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (580) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (581) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (582) 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))))) ---------------------------------------- (583) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (584) 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)))))) ---------------------------------------- (585) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (586) 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)))))) ---------------------------------------- (587) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (588) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (589) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (590) 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)))))) ---------------------------------------- (591) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (592) 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))))) ---------------------------------------- (593) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (594) 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))))) ---------------------------------------- (595) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (596) 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))))) ---------------------------------------- (597) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (598) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (599) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (600) 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)))))) ---------------------------------------- (601) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (602) 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)))))) ---------------------------------------- (603) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (604) 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)))))) ---------------------------------------- (605) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (606) 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)))))) ---------------------------------------- (607) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (608) 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)))))) ---------------------------------------- (609) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (610) 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)))))) ---------------------------------------- (611) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (612) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (613) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (614) 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)))))) ---------------------------------------- (615) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (616) 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))))) ---------------------------------------- (617) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (618) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. ---------------------------------------- (619) Complex Obligation (AND) ---------------------------------------- (620) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (621) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (622) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (623) QReductionProof (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_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (624) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (625) 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))))) ---------------------------------------- (626) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (627) 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))))) ---------------------------------------- (628) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (629) 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))))) ---------------------------------------- (630) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (631) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (632) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (633) 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)))))) ---------------------------------------- (634) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (635) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (636) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (637) 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))))))) ---------------------------------------- (638) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (639) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Neg(x_1)) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (640) YES ---------------------------------------- (641) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (642) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (643) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (644) QReductionProof (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_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS02(x0, x1) ---------------------------------------- (645) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (646) 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))))) ---------------------------------------- (647) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (648) 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)))))) ---------------------------------------- (649) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (650) 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))))))) ---------------------------------------- (651) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (652) 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)))))) ---------------------------------------- (653) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (654) 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)))))) ---------------------------------------- (655) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (656) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (657) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (658) 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))))) ---------------------------------------- (659) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (660) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (661) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (662) 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))))) ---------------------------------------- (663) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (664) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Integer(x_1)) = x_1 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (665) YES ---------------------------------------- (666) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (667) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (668) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (669) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (670) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (671) 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)))))) ---------------------------------------- (672) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (673) 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)))))) ---------------------------------------- (674) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (675) 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))))))) ---------------------------------------- (676) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (677) 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)))))) ---------------------------------------- (678) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (679) 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)))))) ---------------------------------------- (680) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (681) 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))))))) ---------------------------------------- (682) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (683) 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)))))) ---------------------------------------- (684) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (685) 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))))))) ---------------------------------------- (686) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (687) 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)))))) ---------------------------------------- (688) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (689) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (690) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (691) 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)))))) ---------------------------------------- (692) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (693) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (694) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (695) 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)))))) ---------------------------------------- (696) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (697) 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)))))) ---------------------------------------- (698) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (699) 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)))))) ---------------------------------------- (700) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (701) 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)))))) ---------------------------------------- (702) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (703) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (704) Complex Obligation (AND) ---------------------------------------- (705) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (706) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (707) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (708) 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))))))) ---------------------------------------- (709) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (710) 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))))))) ---------------------------------------- (711) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (712) 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))))))) ---------------------------------------- (713) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (714) 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. ---------------------------------------- (715) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (716) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (717) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (718) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) 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)))))) ---------------------------------------- (720) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (721) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (722) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (723) 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. ---------------------------------------- (724) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (725) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) 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'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. ---------------------------------------- (727) 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(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS01(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS01(vuz89, vuz90, Zero, Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS02(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS01(vuz89, vuz90, vuz910, vuz920) new_primModNatS01(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS02(vuz89, vuz90) new_primModNatS01(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz17000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz17000))) -> False The set Q consists of the following terms: new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS02(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (728) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vuz1800), Succ(vuz4000)) -> new_primPlusNat(vuz1800, vuz4000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (729) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primPlusNat(Succ(vuz1800), Succ(vuz4000)) -> new_primPlusNat(vuz1800, vuz4000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (730) YES ---------------------------------------- (731) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="(*)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="(*) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(*) vuz3 vuz4",fontsize=16,color="blue",shape="box"];1023[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 1023[label="",style="solid", color="blue", weight=9]; 1023 -> 5[label="",style="solid", color="blue", weight=3]; 1024[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 1024[label="",style="solid", color="blue", weight=9]; 1024 -> 6[label="",style="solid", color="blue", weight=3]; 1025[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 1025[label="",style="solid", color="blue", weight=9]; 1025 -> 7[label="",style="solid", color="blue", weight=3]; 1026[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];4 -> 1026[label="",style="solid", color="blue", weight=9]; 1026 -> 8[label="",style="solid", color="blue", weight=3]; 1027[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];4 -> 1027[label="",style="solid", color="blue", weight=9]; 1027 -> 9[label="",style="solid", color="blue", weight=3]; 5[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];5 -> 10[label="",style="solid", color="black", weight=3]; 6[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1028[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];6 -> 1028[label="",style="solid", color="burlywood", weight=9]; 1028 -> 11[label="",style="solid", color="burlywood", weight=3]; 7[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];7 -> 12[label="",style="solid", color="black", weight=3]; 8[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1029[label="vuz3/Integer vuz30",fontsize=10,color="white",style="solid",shape="box"];8 -> 1029[label="",style="solid", color="burlywood", weight=9]; 1029 -> 13[label="",style="solid", color="burlywood", weight=3]; 9[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="triangle"];9 -> 14[label="",style="solid", color="black", weight=3]; 10[label="primMulDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1030[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];10 -> 1030[label="",style="solid", color="burlywood", weight=9]; 1030 -> 15[label="",style="solid", color="burlywood", weight=3]; 11[label="(*) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1031[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];11 -> 1031[label="",style="solid", color="burlywood", weight=9]; 1031 -> 16[label="",style="solid", color="burlywood", weight=3]; 12[label="primMulFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1032[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];12 -> 1032[label="",style="solid", color="burlywood", weight=9]; 1032 -> 17[label="",style="solid", color="burlywood", weight=3]; 13[label="(*) Integer vuz30 vuz4",fontsize=16,color="burlywood",shape="box"];1033[label="vuz4/Integer vuz40",fontsize=10,color="white",style="solid",shape="box"];13 -> 1033[label="",style="solid", color="burlywood", weight=9]; 1033 -> 18[label="",style="solid", color="burlywood", weight=3]; 14[label="primMulInt vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1034[label="vuz3/Pos vuz30",fontsize=10,color="white",style="solid",shape="box"];14 -> 1034[label="",style="solid", color="burlywood", weight=9]; 1034 -> 19[label="",style="solid", color="burlywood", weight=3]; 1035[label="vuz3/Neg vuz30",fontsize=10,color="white",style="solid",shape="box"];14 -> 1035[label="",style="solid", color="burlywood", weight=9]; 1035 -> 20[label="",style="solid", color="burlywood", weight=3]; 15[label="primMulDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1036[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];15 -> 1036[label="",style="solid", color="burlywood", weight=9]; 1036 -> 21[label="",style="solid", color="burlywood", weight=3]; 16[label="(*) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];16 -> 22[label="",style="solid", color="black", weight=3]; 17[label="primMulFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1037[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];17 -> 1037[label="",style="solid", color="burlywood", weight=9]; 1037 -> 23[label="",style="solid", color="burlywood", weight=3]; 18[label="(*) Integer vuz30 Integer vuz40",fontsize=16,color="black",shape="box"];18 -> 24[label="",style="solid", color="black", weight=3]; 19[label="primMulInt (Pos vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1038[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];19 -> 1038[label="",style="solid", color="burlywood", weight=9]; 1038 -> 25[label="",style="solid", color="burlywood", weight=3]; 1039[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];19 -> 1039[label="",style="solid", color="burlywood", weight=9]; 1039 -> 26[label="",style="solid", color="burlywood", weight=3]; 20[label="primMulInt (Neg vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1040[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];20 -> 1040[label="",style="solid", color="burlywood", weight=9]; 1040 -> 27[label="",style="solid", color="burlywood", weight=3]; 1041[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];20 -> 1041[label="",style="solid", color="burlywood", weight=9]; 1041 -> 28[label="",style="solid", color="burlywood", weight=3]; 21[label="primMulDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];21 -> 29[label="",style="solid", color="black", weight=3]; 22[label="reduce (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];22 -> 30[label="",style="solid", color="black", weight=3]; 23[label="primMulFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];23 -> 31[label="",style="solid", color="black", weight=3]; 24[label="Integer (primMulInt vuz30 vuz40)",fontsize=16,color="green",shape="box"];24 -> 32[label="",style="dashed", color="green", weight=3]; 25[label="primMulInt (Pos vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];25 -> 33[label="",style="solid", color="black", weight=3]; 26[label="primMulInt (Pos vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];26 -> 34[label="",style="solid", color="black", weight=3]; 27[label="primMulInt (Neg vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];27 -> 35[label="",style="solid", color="black", weight=3]; 28[label="primMulInt (Neg vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];28 -> 36[label="",style="solid", color="black", weight=3]; 29[label="Double (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];29 -> 37[label="",style="dashed", color="green", weight=3]; 29 -> 38[label="",style="dashed", color="green", weight=3]; 30[label="reduce2 (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];30 -> 39[label="",style="solid", color="black", weight=3]; 31[label="Float (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];31 -> 40[label="",style="dashed", color="green", weight=3]; 31 -> 41[label="",style="dashed", color="green", weight=3]; 32 -> 14[label="",style="dashed", color="red", weight=0]; 32[label="primMulInt vuz30 vuz40",fontsize=16,color="magenta"];32 -> 42[label="",style="dashed", color="magenta", weight=3]; 32 -> 43[label="",style="dashed", color="magenta", weight=3]; 33[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];33 -> 44[label="",style="dashed", color="green", weight=3]; 34[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];34 -> 45[label="",style="dashed", color="green", weight=3]; 35[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];35 -> 46[label="",style="dashed", color="green", weight=3]; 36[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];36 -> 47[label="",style="dashed", color="green", weight=3]; 37 -> 9[label="",style="dashed", color="red", weight=0]; 37[label="vuz30 * vuz40",fontsize=16,color="magenta"];37 -> 48[label="",style="dashed", color="magenta", weight=3]; 37 -> 49[label="",style="dashed", color="magenta", weight=3]; 38 -> 9[label="",style="dashed", color="red", weight=0]; 38[label="vuz31 * vuz41",fontsize=16,color="magenta"];38 -> 50[label="",style="dashed", color="magenta", weight=3]; 38 -> 51[label="",style="dashed", color="magenta", weight=3]; 39 -> 52[label="",style="dashed", color="red", weight=0]; 39[label="reduce2Reduce1 (vuz30 * vuz40) (vuz31 * vuz41) (vuz30 * vuz40) (vuz31 * vuz41) (vuz31 * vuz41 == fromInt (Pos Zero))",fontsize=16,color="magenta"];39 -> 53[label="",style="dashed", color="magenta", weight=3]; 39 -> 54[label="",style="dashed", color="magenta", weight=3]; 39 -> 55[label="",style="dashed", color="magenta", weight=3]; 39 -> 56[label="",style="dashed", color="magenta", weight=3]; 39 -> 57[label="",style="dashed", color="magenta", weight=3]; 40 -> 9[label="",style="dashed", color="red", weight=0]; 40[label="vuz30 * vuz40",fontsize=16,color="magenta"];40 -> 58[label="",style="dashed", color="magenta", weight=3]; 40 -> 59[label="",style="dashed", color="magenta", weight=3]; 41 -> 9[label="",style="dashed", color="red", weight=0]; 41[label="vuz31 * vuz41",fontsize=16,color="magenta"];41 -> 60[label="",style="dashed", color="magenta", weight=3]; 41 -> 61[label="",style="dashed", color="magenta", weight=3]; 42[label="vuz40",fontsize=16,color="green",shape="box"];43[label="vuz30",fontsize=16,color="green",shape="box"];44[label="primMulNat vuz30 vuz40",fontsize=16,color="burlywood",shape="triangle"];1042[label="vuz30/Succ vuz300",fontsize=10,color="white",style="solid",shape="box"];44 -> 1042[label="",style="solid", color="burlywood", weight=9]; 1042 -> 62[label="",style="solid", color="burlywood", weight=3]; 1043[label="vuz30/Zero",fontsize=10,color="white",style="solid",shape="box"];44 -> 1043[label="",style="solid", color="burlywood", weight=9]; 1043 -> 63[label="",style="solid", color="burlywood", weight=3]; 45 -> 44[label="",style="dashed", color="red", weight=0]; 45[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];45 -> 64[label="",style="dashed", color="magenta", weight=3]; 46 -> 44[label="",style="dashed", color="red", weight=0]; 46[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];46 -> 65[label="",style="dashed", color="magenta", weight=3]; 47 -> 44[label="",style="dashed", color="red", weight=0]; 47[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];47 -> 66[label="",style="dashed", color="magenta", weight=3]; 47 -> 67[label="",style="dashed", color="magenta", weight=3]; 48[label="vuz40",fontsize=16,color="green",shape="box"];49[label="vuz30",fontsize=16,color="green",shape="box"];50[label="vuz41",fontsize=16,color="green",shape="box"];51[label="vuz31",fontsize=16,color="green",shape="box"];53[label="vuz40",fontsize=16,color="green",shape="box"];54[label="vuz30",fontsize=16,color="green",shape="box"];55[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];1044[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];55 -> 1044[label="",style="solid", color="blue", weight=9]; 1044 -> 68[label="",style="solid", color="blue", weight=3]; 1045[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];55 -> 1045[label="",style="solid", color="blue", weight=9]; 1045 -> 69[label="",style="solid", color="blue", weight=3]; 56[label="vuz31",fontsize=16,color="green",shape="box"];57[label="vuz41",fontsize=16,color="green",shape="box"];52[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) vuz15",fontsize=16,color="burlywood",shape="triangle"];1046[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];52 -> 1046[label="",style="solid", color="burlywood", weight=9]; 1046 -> 70[label="",style="solid", color="burlywood", weight=3]; 1047[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];52 -> 1047[label="",style="solid", color="burlywood", weight=9]; 1047 -> 71[label="",style="solid", color="burlywood", weight=3]; 58[label="vuz40",fontsize=16,color="green",shape="box"];59[label="vuz30",fontsize=16,color="green",shape="box"];60[label="vuz41",fontsize=16,color="green",shape="box"];61[label="vuz31",fontsize=16,color="green",shape="box"];62[label="primMulNat (Succ vuz300) vuz40",fontsize=16,color="burlywood",shape="box"];1048[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];62 -> 1048[label="",style="solid", color="burlywood", weight=9]; 1048 -> 72[label="",style="solid", color="burlywood", weight=3]; 1049[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];62 -> 1049[label="",style="solid", color="burlywood", weight=9]; 1049 -> 73[label="",style="solid", color="burlywood", weight=3]; 63[label="primMulNat Zero vuz40",fontsize=16,color="burlywood",shape="box"];1050[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];63 -> 1050[label="",style="solid", color="burlywood", weight=9]; 1050 -> 74[label="",style="solid", color="burlywood", weight=3]; 1051[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];63 -> 1051[label="",style="solid", color="burlywood", weight=9]; 1051 -> 75[label="",style="solid", color="burlywood", weight=3]; 64[label="vuz40",fontsize=16,color="green",shape="box"];65[label="vuz30",fontsize=16,color="green",shape="box"];66[label="vuz30",fontsize=16,color="green",shape="box"];67[label="vuz40",fontsize=16,color="green",shape="box"];68 -> 76[label="",style="dashed", color="red", weight=0]; 68[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];68 -> 77[label="",style="dashed", color="magenta", weight=3]; 69 -> 78[label="",style="dashed", color="red", weight=0]; 69[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];69 -> 79[label="",style="dashed", color="magenta", weight=3]; 70[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) False",fontsize=16,color="black",shape="box"];70 -> 80[label="",style="solid", color="black", weight=3]; 71[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];71 -> 81[label="",style="solid", color="black", weight=3]; 72[label="primMulNat (Succ vuz300) (Succ vuz400)",fontsize=16,color="black",shape="box"];72 -> 82[label="",style="solid", color="black", weight=3]; 73[label="primMulNat (Succ vuz300) Zero",fontsize=16,color="black",shape="box"];73 -> 83[label="",style="solid", color="black", weight=3]; 74[label="primMulNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];74 -> 84[label="",style="solid", color="black", weight=3]; 75[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];75 -> 85[label="",style="solid", color="black", weight=3]; 77 -> 9[label="",style="dashed", color="red", weight=0]; 77[label="vuz31 * vuz41",fontsize=16,color="magenta"];77 -> 86[label="",style="dashed", color="magenta", weight=3]; 77 -> 87[label="",style="dashed", color="magenta", weight=3]; 76[label="vuz16 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];76 -> 88[label="",style="solid", color="black", weight=3]; 79 -> 8[label="",style="dashed", color="red", weight=0]; 79[label="vuz31 * vuz41",fontsize=16,color="magenta"];79 -> 89[label="",style="dashed", color="magenta", weight=3]; 79 -> 90[label="",style="dashed", color="magenta", weight=3]; 78[label="vuz17 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1052[label="vuz17/Integer vuz170",fontsize=10,color="white",style="solid",shape="box"];78 -> 1052[label="",style="solid", color="burlywood", weight=9]; 1052 -> 91[label="",style="solid", color="burlywood", weight=3]; 80[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) otherwise",fontsize=16,color="black",shape="box"];80 -> 92[label="",style="solid", color="black", weight=3]; 81[label="error []",fontsize=16,color="black",shape="box"];81 -> 93[label="",style="solid", color="black", weight=3]; 82 -> 94[label="",style="dashed", color="red", weight=0]; 82[label="primPlusNat (primMulNat vuz300 (Succ vuz400)) (Succ vuz400)",fontsize=16,color="magenta"];82 -> 95[label="",style="dashed", color="magenta", weight=3]; 83[label="Zero",fontsize=16,color="green",shape="box"];84[label="Zero",fontsize=16,color="green",shape="box"];85[label="Zero",fontsize=16,color="green",shape="box"];86[label="vuz41",fontsize=16,color="green",shape="box"];87[label="vuz31",fontsize=16,color="green",shape="box"];88[label="primEqInt vuz16 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1053[label="vuz16/Pos vuz160",fontsize=10,color="white",style="solid",shape="box"];88 -> 1053[label="",style="solid", color="burlywood", weight=9]; 1053 -> 96[label="",style="solid", color="burlywood", weight=3]; 1054[label="vuz16/Neg vuz160",fontsize=10,color="white",style="solid",shape="box"];88 -> 1054[label="",style="solid", color="burlywood", weight=9]; 1054 -> 97[label="",style="solid", color="burlywood", weight=3]; 89[label="vuz41",fontsize=16,color="green",shape="box"];90[label="vuz31",fontsize=16,color="green",shape="box"];91[label="Integer vuz170 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];91 -> 98[label="",style="solid", color="black", weight=3]; 92[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];92 -> 99[label="",style="solid", color="black", weight=3]; 93[label="error []",fontsize=16,color="red",shape="box"];95 -> 44[label="",style="dashed", color="red", weight=0]; 95[label="primMulNat vuz300 (Succ vuz400)",fontsize=16,color="magenta"];95 -> 100[label="",style="dashed", color="magenta", weight=3]; 95 -> 101[label="",style="dashed", color="magenta", weight=3]; 94[label="primPlusNat vuz18 (Succ vuz400)",fontsize=16,color="burlywood",shape="triangle"];1055[label="vuz18/Succ vuz180",fontsize=10,color="white",style="solid",shape="box"];94 -> 1055[label="",style="solid", color="burlywood", weight=9]; 1055 -> 102[label="",style="solid", color="burlywood", weight=3]; 1056[label="vuz18/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 1056[label="",style="solid", color="burlywood", weight=9]; 1056 -> 103[label="",style="solid", color="burlywood", weight=3]; 96[label="primEqInt (Pos vuz160) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1057[label="vuz160/Succ vuz1600",fontsize=10,color="white",style="solid",shape="box"];96 -> 1057[label="",style="solid", color="burlywood", weight=9]; 1057 -> 104[label="",style="solid", color="burlywood", weight=3]; 1058[label="vuz160/Zero",fontsize=10,color="white",style="solid",shape="box"];96 -> 1058[label="",style="solid", color="burlywood", weight=9]; 1058 -> 105[label="",style="solid", color="burlywood", weight=3]; 97[label="primEqInt (Neg vuz160) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1059[label="vuz160/Succ vuz1600",fontsize=10,color="white",style="solid",shape="box"];97 -> 1059[label="",style="solid", color="burlywood", weight=9]; 1059 -> 106[label="",style="solid", color="burlywood", weight=3]; 1060[label="vuz160/Zero",fontsize=10,color="white",style="solid",shape="box"];97 -> 1060[label="",style="solid", color="burlywood", weight=9]; 1060 -> 107[label="",style="solid", color="burlywood", weight=3]; 98[label="Integer vuz170 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];98 -> 108[label="",style="solid", color="black", weight=3]; 99[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14) :% (vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14))",fontsize=16,color="green",shape="box"];99 -> 109[label="",style="dashed", color="green", weight=3]; 99 -> 110[label="",style="dashed", color="green", weight=3]; 100[label="vuz300",fontsize=16,color="green",shape="box"];101[label="Succ vuz400",fontsize=16,color="green",shape="box"];102[label="primPlusNat (Succ vuz180) (Succ vuz400)",fontsize=16,color="black",shape="box"];102 -> 111[label="",style="solid", color="black", weight=3]; 103[label="primPlusNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];103 -> 112[label="",style="solid", color="black", weight=3]; 104[label="primEqInt (Pos (Succ vuz1600)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];104 -> 113[label="",style="solid", color="black", weight=3]; 105[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];105 -> 114[label="",style="solid", color="black", weight=3]; 106[label="primEqInt (Neg (Succ vuz1600)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];106 -> 115[label="",style="solid", color="black", weight=3]; 107[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];107 -> 116[label="",style="solid", color="black", weight=3]; 108[label="primEqInt vuz170 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1061[label="vuz170/Pos vuz1700",fontsize=10,color="white",style="solid",shape="box"];108 -> 1061[label="",style="solid", color="burlywood", weight=9]; 1061 -> 117[label="",style="solid", color="burlywood", weight=3]; 1062[label="vuz170/Neg vuz1700",fontsize=10,color="white",style="solid",shape="box"];108 -> 1062[label="",style="solid", color="burlywood", weight=9]; 1062 -> 118[label="",style="solid", color="burlywood", weight=3]; 109[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1063[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];109 -> 1063[label="",style="solid", color="blue", weight=9]; 1063 -> 119[label="",style="solid", color="blue", weight=3]; 1064[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];109 -> 1064[label="",style="solid", color="blue", weight=9]; 1064 -> 120[label="",style="solid", color="blue", weight=3]; 110[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1065[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];110 -> 1065[label="",style="solid", color="blue", weight=9]; 1065 -> 121[label="",style="solid", color="blue", weight=3]; 1066[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];110 -> 1066[label="",style="solid", color="blue", weight=9]; 1066 -> 122[label="",style="solid", color="blue", weight=3]; 111[label="Succ (Succ (primPlusNat vuz180 vuz400))",fontsize=16,color="green",shape="box"];111 -> 123[label="",style="dashed", color="green", weight=3]; 112[label="Succ vuz400",fontsize=16,color="green",shape="box"];113 -> 108[label="",style="dashed", color="red", weight=0]; 113[label="primEqInt (Pos (Succ vuz1600)) (Pos Zero)",fontsize=16,color="magenta"];113 -> 124[label="",style="dashed", color="magenta", weight=3]; 114 -> 108[label="",style="dashed", color="red", weight=0]; 114[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];114 -> 125[label="",style="dashed", color="magenta", weight=3]; 115 -> 108[label="",style="dashed", color="red", weight=0]; 115[label="primEqInt (Neg (Succ vuz1600)) (Pos Zero)",fontsize=16,color="magenta"];115 -> 126[label="",style="dashed", color="magenta", weight=3]; 116 -> 108[label="",style="dashed", color="red", weight=0]; 116[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];116 -> 127[label="",style="dashed", color="magenta", weight=3]; 117[label="primEqInt (Pos vuz1700) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1067[label="vuz1700/Succ vuz17000",fontsize=10,color="white",style="solid",shape="box"];117 -> 1067[label="",style="solid", color="burlywood", weight=9]; 1067 -> 128[label="",style="solid", color="burlywood", weight=3]; 1068[label="vuz1700/Zero",fontsize=10,color="white",style="solid",shape="box"];117 -> 1068[label="",style="solid", color="burlywood", weight=9]; 1068 -> 129[label="",style="solid", color="burlywood", weight=3]; 118[label="primEqInt (Neg vuz1700) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1069[label="vuz1700/Succ vuz17000",fontsize=10,color="white",style="solid",shape="box"];118 -> 1069[label="",style="solid", color="burlywood", weight=9]; 1069 -> 130[label="",style="solid", color="burlywood", weight=3]; 1070[label="vuz1700/Zero",fontsize=10,color="white",style="solid",shape="box"];118 -> 1070[label="",style="solid", color="burlywood", weight=9]; 1070 -> 131[label="",style="solid", color="burlywood", weight=3]; 119 -> 132[label="",style="dashed", color="red", weight=0]; 119[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];119 -> 133[label="",style="dashed", color="magenta", weight=3]; 119 -> 134[label="",style="dashed", color="magenta", weight=3]; 119 -> 135[label="",style="dashed", color="magenta", weight=3]; 120 -> 139[label="",style="dashed", color="red", weight=0]; 120[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];120 -> 140[label="",style="dashed", color="magenta", weight=3]; 120 -> 141[label="",style="dashed", color="magenta", weight=3]; 120 -> 142[label="",style="dashed", color="magenta", weight=3]; 121 -> 132[label="",style="dashed", color="red", weight=0]; 121[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 121 -> 137[label="",style="dashed", color="magenta", weight=3]; 121 -> 138[label="",style="dashed", color="magenta", weight=3]; 122 -> 139[label="",style="dashed", color="red", weight=0]; 122[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];122 -> 143[label="",style="dashed", color="magenta", weight=3]; 122 -> 144[label="",style="dashed", color="magenta", weight=3]; 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 123[label="primPlusNat vuz180 vuz400",fontsize=16,color="burlywood",shape="triangle"];1071[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];123 -> 1071[label="",style="solid", color="burlywood", weight=9]; 1071 -> 146[label="",style="solid", color="burlywood", weight=3]; 1072[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];123 -> 1072[label="",style="solid", color="burlywood", weight=9]; 1072 -> 147[label="",style="solid", color="burlywood", weight=3]; 124[label="Pos (Succ vuz1600)",fontsize=16,color="green",shape="box"];125[label="Pos Zero",fontsize=16,color="green",shape="box"];126[label="Neg (Succ vuz1600)",fontsize=16,color="green",shape="box"];127[label="Neg Zero",fontsize=16,color="green",shape="box"];128[label="primEqInt (Pos (Succ vuz17000)) (Pos Zero)",fontsize=16,color="black",shape="box"];128 -> 148[label="",style="solid", color="black", weight=3]; 129[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];129 -> 149[label="",style="solid", color="black", weight=3]; 130[label="primEqInt (Neg (Succ vuz17000)) (Pos Zero)",fontsize=16,color="black",shape="box"];130 -> 150[label="",style="solid", color="black", weight=3]; 131[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];131 -> 151[label="",style="solid", color="black", weight=3]; 133 -> 8[label="",style="dashed", color="red", weight=0]; 133[label="vuz13 * vuz14",fontsize=16,color="magenta"];133 -> 152[label="",style="dashed", color="magenta", weight=3]; 133 -> 153[label="",style="dashed", color="magenta", weight=3]; 134 -> 8[label="",style="dashed", color="red", weight=0]; 134[label="vuz11 * vuz12",fontsize=16,color="magenta"];134 -> 154[label="",style="dashed", color="magenta", weight=3]; 134 -> 155[label="",style="dashed", color="magenta", weight=3]; 135 -> 8[label="",style="dashed", color="red", weight=0]; 135[label="vuz11 * vuz12",fontsize=16,color="magenta"];135 -> 156[label="",style="dashed", color="magenta", weight=3]; 135 -> 157[label="",style="dashed", color="magenta", weight=3]; 132[label="vuz19 `quot` reduce2D vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1073[label="vuz19/Integer vuz190",fontsize=10,color="white",style="solid",shape="box"];132 -> 1073[label="",style="solid", color="burlywood", weight=9]; 1073 -> 158[label="",style="solid", color="burlywood", weight=3]; 140 -> 9[label="",style="dashed", color="red", weight=0]; 140[label="vuz13 * vuz14",fontsize=16,color="magenta"];140 -> 159[label="",style="dashed", color="magenta", weight=3]; 140 -> 160[label="",style="dashed", color="magenta", weight=3]; 141 -> 9[label="",style="dashed", color="red", weight=0]; 141[label="vuz11 * vuz12",fontsize=16,color="magenta"];141 -> 161[label="",style="dashed", color="magenta", weight=3]; 141 -> 162[label="",style="dashed", color="magenta", weight=3]; 142 -> 9[label="",style="dashed", color="red", weight=0]; 142[label="vuz11 * vuz12",fontsize=16,color="magenta"];142 -> 163[label="",style="dashed", color="magenta", weight=3]; 142 -> 164[label="",style="dashed", color="magenta", weight=3]; 139[label="vuz22 `quot` reduce2D vuz24 vuz23",fontsize=16,color="black",shape="triangle"];139 -> 165[label="",style="solid", color="black", weight=3]; 136 -> 8[label="",style="dashed", color="red", weight=0]; 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 166[label="",style="dashed", color="magenta", weight=3]; 136 -> 167[label="",style="dashed", color="magenta", weight=3]; 137 -> 8[label="",style="dashed", color="red", weight=0]; 137[label="vuz11 * vuz12",fontsize=16,color="magenta"];137 -> 168[label="",style="dashed", color="magenta", weight=3]; 137 -> 169[label="",style="dashed", color="magenta", weight=3]; 138 -> 8[label="",style="dashed", color="red", weight=0]; 138[label="vuz13 * vuz14",fontsize=16,color="magenta"];138 -> 170[label="",style="dashed", color="magenta", weight=3]; 138 -> 171[label="",style="dashed", color="magenta", weight=3]; 143 -> 9[label="",style="dashed", color="red", weight=0]; 143[label="vuz13 * vuz14",fontsize=16,color="magenta"];143 -> 172[label="",style="dashed", color="magenta", weight=3]; 143 -> 173[label="",style="dashed", color="magenta", weight=3]; 144 -> 9[label="",style="dashed", color="red", weight=0]; 144[label="vuz11 * vuz12",fontsize=16,color="magenta"];144 -> 174[label="",style="dashed", color="magenta", weight=3]; 144 -> 175[label="",style="dashed", color="magenta", weight=3]; 145 -> 9[label="",style="dashed", color="red", weight=0]; 145[label="vuz13 * vuz14",fontsize=16,color="magenta"];145 -> 176[label="",style="dashed", color="magenta", weight=3]; 145 -> 177[label="",style="dashed", color="magenta", weight=3]; 146[label="primPlusNat (Succ vuz1800) vuz400",fontsize=16,color="burlywood",shape="box"];1074[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];146 -> 1074[label="",style="solid", color="burlywood", weight=9]; 1074 -> 178[label="",style="solid", color="burlywood", weight=3]; 1075[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];146 -> 1075[label="",style="solid", color="burlywood", weight=9]; 1075 -> 179[label="",style="solid", color="burlywood", weight=3]; 147[label="primPlusNat Zero vuz400",fontsize=16,color="burlywood",shape="box"];1076[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];147 -> 1076[label="",style="solid", color="burlywood", weight=9]; 1076 -> 180[label="",style="solid", color="burlywood", weight=3]; 1077[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];147 -> 1077[label="",style="solid", color="burlywood", weight=9]; 1077 -> 181[label="",style="solid", color="burlywood", weight=3]; 148[label="False",fontsize=16,color="green",shape="box"];149[label="True",fontsize=16,color="green",shape="box"];150[label="False",fontsize=16,color="green",shape="box"];151[label="True",fontsize=16,color="green",shape="box"];152[label="vuz14",fontsize=16,color="green",shape="box"];153[label="vuz13",fontsize=16,color="green",shape="box"];154[label="vuz12",fontsize=16,color="green",shape="box"];155[label="vuz11",fontsize=16,color="green",shape="box"];156[label="vuz12",fontsize=16,color="green",shape="box"];157[label="vuz11",fontsize=16,color="green",shape="box"];158[label="Integer vuz190 `quot` reduce2D vuz21 vuz20",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 159[label="vuz14",fontsize=16,color="green",shape="box"];160[label="vuz13",fontsize=16,color="green",shape="box"];161[label="vuz12",fontsize=16,color="green",shape="box"];162[label="vuz11",fontsize=16,color="green",shape="box"];163[label="vuz12",fontsize=16,color="green",shape="box"];164[label="vuz11",fontsize=16,color="green",shape="box"];165[label="primQuotInt vuz22 (reduce2D vuz24 vuz23)",fontsize=16,color="burlywood",shape="box"];1078[label="vuz22/Pos vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1078[label="",style="solid", color="burlywood", weight=9]; 1078 -> 183[label="",style="solid", color="burlywood", weight=3]; 1079[label="vuz22/Neg vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1079[label="",style="solid", color="burlywood", weight=9]; 1079 -> 184[label="",style="solid", color="burlywood", weight=3]; 166[label="vuz14",fontsize=16,color="green",shape="box"];167[label="vuz13",fontsize=16,color="green",shape="box"];168[label="vuz12",fontsize=16,color="green",shape="box"];169[label="vuz11",fontsize=16,color="green",shape="box"];170[label="vuz14",fontsize=16,color="green",shape="box"];171[label="vuz13",fontsize=16,color="green",shape="box"];172[label="vuz14",fontsize=16,color="green",shape="box"];173[label="vuz13",fontsize=16,color="green",shape="box"];174[label="vuz12",fontsize=16,color="green",shape="box"];175[label="vuz11",fontsize=16,color="green",shape="box"];176[label="vuz14",fontsize=16,color="green",shape="box"];177[label="vuz13",fontsize=16,color="green",shape="box"];178[label="primPlusNat (Succ vuz1800) (Succ vuz4000)",fontsize=16,color="black",shape="box"];178 -> 185[label="",style="solid", color="black", weight=3]; 179[label="primPlusNat (Succ vuz1800) Zero",fontsize=16,color="black",shape="box"];179 -> 186[label="",style="solid", color="black", weight=3]; 180[label="primPlusNat Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];180 -> 187[label="",style="solid", color="black", weight=3]; 181[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];181 -> 188[label="",style="solid", color="black", weight=3]; 182 -> 276[label="",style="dashed", color="red", weight=0]; 182[label="Integer vuz190 `quot` gcd vuz21 vuz20",fontsize=16,color="magenta"];182 -> 277[label="",style="dashed", color="magenta", weight=3]; 183[label="primQuotInt (Pos vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];183 -> 190[label="",style="solid", color="black", weight=3]; 184[label="primQuotInt (Neg vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];184 -> 191[label="",style="solid", color="black", weight=3]; 185[label="Succ (Succ (primPlusNat vuz1800 vuz4000))",fontsize=16,color="green",shape="box"];185 -> 192[label="",style="dashed", color="green", weight=3]; 186[label="Succ vuz1800",fontsize=16,color="green",shape="box"];187[label="Succ vuz4000",fontsize=16,color="green",shape="box"];188[label="Zero",fontsize=16,color="green",shape="box"];277[label="gcd vuz21 vuz20",fontsize=16,color="black",shape="box"];277 -> 293[label="",style="solid", color="black", weight=3]; 276[label="Integer vuz190 `quot` vuz36",fontsize=16,color="burlywood",shape="triangle"];1080[label="vuz36/Integer vuz360",fontsize=10,color="white",style="solid",shape="box"];276 -> 1080[label="",style="solid", color="burlywood", weight=9]; 1080 -> 294[label="",style="solid", color="burlywood", weight=3]; 190 -> 312[label="",style="dashed", color="red", weight=0]; 190[label="primQuotInt (Pos vuz220) (gcd vuz24 vuz23)",fontsize=16,color="magenta"];190 -> 313[label="",style="dashed", color="magenta", weight=3]; 191[label="primQuotInt (Neg vuz220) (gcd vuz24 vuz23)",fontsize=16,color="black",shape="box"];191 -> 195[label="",style="solid", color="black", weight=3]; 192 -> 123[label="",style="dashed", color="red", weight=0]; 192[label="primPlusNat vuz1800 vuz4000",fontsize=16,color="magenta"];192 -> 196[label="",style="dashed", color="magenta", weight=3]; 192 -> 197[label="",style="dashed", color="magenta", weight=3]; 293[label="gcd3 vuz21 vuz20",fontsize=16,color="black",shape="box"];293 -> 300[label="",style="solid", color="black", weight=3]; 294[label="Integer vuz190 `quot` Integer vuz360",fontsize=16,color="black",shape="box"];294 -> 301[label="",style="solid", color="black", weight=3]; 313[label="gcd vuz24 vuz23",fontsize=16,color="black",shape="box"];313 -> 329[label="",style="solid", color="black", weight=3]; 312[label="primQuotInt (Pos vuz220) vuz40",fontsize=16,color="burlywood",shape="triangle"];1081[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1081[label="",style="solid", color="burlywood", weight=9]; 1081 -> 330[label="",style="solid", color="burlywood", weight=3]; 1082[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1082[label="",style="solid", color="burlywood", weight=9]; 1082 -> 331[label="",style="solid", color="burlywood", weight=3]; 195[label="primQuotInt (Neg vuz220) (gcd3 vuz24 vuz23)",fontsize=16,color="black",shape="box"];195 -> 201[label="",style="solid", color="black", weight=3]; 196[label="vuz1800",fontsize=16,color="green",shape="box"];197[label="vuz4000",fontsize=16,color="green",shape="box"];300 -> 306[label="",style="dashed", color="red", weight=0]; 300[label="gcd2 (vuz21 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];300 -> 307[label="",style="dashed", color="magenta", weight=3]; 301[label="Integer (primQuotInt vuz190 vuz360)",fontsize=16,color="green",shape="box"];301 -> 308[label="",style="dashed", color="green", weight=3]; 329[label="gcd3 vuz24 vuz23",fontsize=16,color="black",shape="box"];329 -> 341[label="",style="solid", color="black", weight=3]; 330[label="primQuotInt (Pos vuz220) (Pos vuz400)",fontsize=16,color="burlywood",shape="box"];1083[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];330 -> 1083[label="",style="solid", color="burlywood", weight=9]; 1083 -> 342[label="",style="solid", color="burlywood", weight=3]; 1084[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];330 -> 1084[label="",style="solid", color="burlywood", weight=9]; 1084 -> 343[label="",style="solid", color="burlywood", weight=3]; 331[label="primQuotInt (Pos vuz220) (Neg vuz400)",fontsize=16,color="burlywood",shape="box"];1085[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];331 -> 1085[label="",style="solid", color="burlywood", weight=9]; 1085 -> 344[label="",style="solid", color="burlywood", weight=3]; 1086[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];331 -> 1086[label="",style="solid", color="burlywood", weight=9]; 1086 -> 345[label="",style="solid", color="burlywood", weight=3]; 201 -> 207[label="",style="dashed", color="red", weight=0]; 201[label="primQuotInt (Neg vuz220) (gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];201 -> 208[label="",style="dashed", color="magenta", weight=3]; 307 -> 78[label="",style="dashed", color="red", weight=0]; 307[label="vuz21 == fromInt (Pos Zero)",fontsize=16,color="magenta"];307 -> 309[label="",style="dashed", color="magenta", weight=3]; 306[label="gcd2 vuz39 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1087[label="vuz39/False",fontsize=10,color="white",style="solid",shape="box"];306 -> 1087[label="",style="solid", color="burlywood", weight=9]; 1087 -> 310[label="",style="solid", color="burlywood", weight=3]; 1088[label="vuz39/True",fontsize=10,color="white",style="solid",shape="box"];306 -> 1088[label="",style="solid", color="burlywood", weight=9]; 1088 -> 311[label="",style="solid", color="burlywood", weight=3]; 308[label="primQuotInt vuz190 vuz360",fontsize=16,color="burlywood",shape="triangle"];1089[label="vuz190/Pos vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1089[label="",style="solid", color="burlywood", weight=9]; 1089 -> 332[label="",style="solid", color="burlywood", weight=3]; 1090[label="vuz190/Neg vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1090[label="",style="solid", color="burlywood", weight=9]; 1090 -> 333[label="",style="solid", color="burlywood", weight=3]; 341 -> 353[label="",style="dashed", color="red", weight=0]; 341[label="gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];341 -> 354[label="",style="dashed", color="magenta", weight=3]; 342[label="primQuotInt (Pos vuz220) (Pos (Succ vuz4000))",fontsize=16,color="black",shape="box"];342 -> 355[label="",style="solid", color="black", weight=3]; 343[label="primQuotInt (Pos vuz220) (Pos Zero)",fontsize=16,color="black",shape="box"];343 -> 356[label="",style="solid", color="black", weight=3]; 344[label="primQuotInt (Pos vuz220) (Neg (Succ vuz4000))",fontsize=16,color="black",shape="box"];344 -> 357[label="",style="solid", color="black", weight=3]; 345[label="primQuotInt (Pos vuz220) (Neg Zero)",fontsize=16,color="black",shape="box"];345 -> 358[label="",style="solid", color="black", weight=3]; 208 -> 76[label="",style="dashed", color="red", weight=0]; 208[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];208 -> 214[label="",style="dashed", color="magenta", weight=3]; 207[label="primQuotInt (Neg vuz220) (gcd2 vuz27 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1091[label="vuz27/False",fontsize=10,color="white",style="solid",shape="box"];207 -> 1091[label="",style="solid", color="burlywood", weight=9]; 1091 -> 215[label="",style="solid", color="burlywood", weight=3]; 1092[label="vuz27/True",fontsize=10,color="white",style="solid",shape="box"];207 -> 1092[label="",style="solid", color="burlywood", weight=9]; 1092 -> 216[label="",style="solid", color="burlywood", weight=3]; 309[label="vuz21",fontsize=16,color="green",shape="box"];310[label="gcd2 False vuz21 vuz20",fontsize=16,color="black",shape="box"];310 -> 334[label="",style="solid", color="black", weight=3]; 311[label="gcd2 True vuz21 vuz20",fontsize=16,color="black",shape="box"];311 -> 335[label="",style="solid", color="black", weight=3]; 332[label="primQuotInt (Pos vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1093[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1093[label="",style="solid", color="burlywood", weight=9]; 1093 -> 346[label="",style="solid", color="burlywood", weight=3]; 1094[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1094[label="",style="solid", color="burlywood", weight=9]; 1094 -> 347[label="",style="solid", color="burlywood", weight=3]; 333[label="primQuotInt (Neg vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1095[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1095[label="",style="solid", color="burlywood", weight=9]; 1095 -> 348[label="",style="solid", color="burlywood", weight=3]; 1096[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1096[label="",style="solid", color="burlywood", weight=9]; 1096 -> 349[label="",style="solid", color="burlywood", weight=3]; 354 -> 76[label="",style="dashed", color="red", weight=0]; 354[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];354 -> 359[label="",style="dashed", color="magenta", weight=3]; 353[label="gcd2 vuz42 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1097[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];353 -> 1097[label="",style="solid", color="burlywood", weight=9]; 1097 -> 360[label="",style="solid", color="burlywood", weight=3]; 1098[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];353 -> 1098[label="",style="solid", color="burlywood", weight=9]; 1098 -> 361[label="",style="solid", color="burlywood", weight=3]; 355[label="Pos (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];355 -> 377[label="",style="dashed", color="green", weight=3]; 356[label="error []",fontsize=16,color="black",shape="triangle"];356 -> 378[label="",style="solid", color="black", weight=3]; 357[label="Neg (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];357 -> 379[label="",style="dashed", color="green", weight=3]; 358 -> 356[label="",style="dashed", color="red", weight=0]; 358[label="error []",fontsize=16,color="magenta"];214[label="vuz24",fontsize=16,color="green",shape="box"];215[label="primQuotInt (Neg vuz220) (gcd2 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];215 -> 222[label="",style="solid", color="black", weight=3]; 216[label="primQuotInt (Neg vuz220) (gcd2 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];216 -> 223[label="",style="solid", color="black", weight=3]; 334[label="gcd0 vuz21 vuz20",fontsize=16,color="black",shape="triangle"];334 -> 350[label="",style="solid", color="black", weight=3]; 335 -> 351[label="",style="dashed", color="red", weight=0]; 335[label="gcd1 (vuz20 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];335 -> 352[label="",style="dashed", color="magenta", weight=3]; 346[label="primQuotInt (Pos vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1099[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];346 -> 1099[label="",style="solid", color="burlywood", weight=9]; 1099 -> 362[label="",style="solid", color="burlywood", weight=3]; 1100[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];346 -> 1100[label="",style="solid", color="burlywood", weight=9]; 1100 -> 363[label="",style="solid", color="burlywood", weight=3]; 347[label="primQuotInt (Pos vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1101[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];347 -> 1101[label="",style="solid", color="burlywood", weight=9]; 1101 -> 364[label="",style="solid", color="burlywood", weight=3]; 1102[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];347 -> 1102[label="",style="solid", color="burlywood", weight=9]; 1102 -> 365[label="",style="solid", color="burlywood", weight=3]; 348[label="primQuotInt (Neg vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1103[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];348 -> 1103[label="",style="solid", color="burlywood", weight=9]; 1103 -> 366[label="",style="solid", color="burlywood", weight=3]; 1104[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];348 -> 1104[label="",style="solid", color="burlywood", weight=9]; 1104 -> 367[label="",style="solid", color="burlywood", weight=3]; 349[label="primQuotInt (Neg vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1105[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];349 -> 1105[label="",style="solid", color="burlywood", weight=9]; 1105 -> 368[label="",style="solid", color="burlywood", weight=3]; 1106[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];349 -> 1106[label="",style="solid", color="burlywood", weight=9]; 1106 -> 369[label="",style="solid", color="burlywood", weight=3]; 359[label="vuz24",fontsize=16,color="green",shape="box"];360[label="gcd2 False vuz24 vuz23",fontsize=16,color="black",shape="box"];360 -> 380[label="",style="solid", color="black", weight=3]; 361[label="gcd2 True vuz24 vuz23",fontsize=16,color="black",shape="box"];361 -> 381[label="",style="solid", color="black", weight=3]; 377[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="burlywood",shape="triangle"];1107[label="vuz220/Succ vuz2200",fontsize=10,color="white",style="solid",shape="box"];377 -> 1107[label="",style="solid", color="burlywood", weight=9]; 1107 -> 397[label="",style="solid", color="burlywood", weight=3]; 1108[label="vuz220/Zero",fontsize=10,color="white",style="solid",shape="box"];377 -> 1108[label="",style="solid", color="burlywood", weight=9]; 1108 -> 398[label="",style="solid", color="burlywood", weight=3]; 378[label="error []",fontsize=16,color="red",shape="box"];379 -> 377[label="",style="dashed", color="red", weight=0]; 379[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="magenta"];379 -> 399[label="",style="dashed", color="magenta", weight=3]; 222[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="black",shape="triangle"];222 -> 231[label="",style="solid", color="black", weight=3]; 223 -> 232[label="",style="dashed", color="red", weight=0]; 223[label="primQuotInt (Neg vuz220) (gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];223 -> 233[label="",style="dashed", color="magenta", weight=3]; 350[label="gcd0Gcd' (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];350 -> 370[label="",style="solid", color="black", weight=3]; 352 -> 78[label="",style="dashed", color="red", weight=0]; 352[label="vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];352 -> 371[label="",style="dashed", color="magenta", weight=3]; 351[label="gcd1 vuz41 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1109[label="vuz41/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 1109[label="",style="solid", color="burlywood", weight=9]; 1109 -> 372[label="",style="solid", color="burlywood", weight=3]; 1110[label="vuz41/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 1110[label="",style="solid", color="burlywood", weight=9]; 1110 -> 373[label="",style="solid", color="burlywood", weight=3]; 362[label="primQuotInt (Pos vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];362 -> 382[label="",style="solid", color="black", weight=3]; 363[label="primQuotInt (Pos vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];363 -> 383[label="",style="solid", color="black", weight=3]; 364[label="primQuotInt (Pos vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];364 -> 384[label="",style="solid", color="black", weight=3]; 365[label="primQuotInt (Pos vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];365 -> 385[label="",style="solid", color="black", weight=3]; 366[label="primQuotInt (Neg vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];366 -> 386[label="",style="solid", color="black", weight=3]; 367[label="primQuotInt (Neg vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];367 -> 387[label="",style="solid", color="black", weight=3]; 368[label="primQuotInt (Neg vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];368 -> 388[label="",style="solid", color="black", weight=3]; 369[label="primQuotInt (Neg vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];369 -> 389[label="",style="solid", color="black", weight=3]; 380[label="gcd0 vuz24 vuz23",fontsize=16,color="black",shape="triangle"];380 -> 400[label="",style="solid", color="black", weight=3]; 381 -> 401[label="",style="dashed", color="red", weight=0]; 381[label="gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];381 -> 402[label="",style="dashed", color="magenta", weight=3]; 397[label="primDivNatS (Succ vuz2200) (Succ vuz4000)",fontsize=16,color="black",shape="box"];397 -> 403[label="",style="solid", color="black", weight=3]; 398[label="primDivNatS Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];398 -> 404[label="",style="solid", color="black", weight=3]; 399[label="vuz4000",fontsize=16,color="green",shape="box"];231[label="primQuotInt (Neg vuz220) (gcd0Gcd' (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];231 -> 241[label="",style="solid", color="black", weight=3]; 233 -> 76[label="",style="dashed", color="red", weight=0]; 233[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];233 -> 242[label="",style="dashed", color="magenta", weight=3]; 232[label="primQuotInt (Neg vuz220) (gcd1 vuz30 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1111[label="vuz30/False",fontsize=10,color="white",style="solid",shape="box"];232 -> 1111[label="",style="solid", color="burlywood", weight=9]; 1111 -> 243[label="",style="solid", color="burlywood", weight=3]; 1112[label="vuz30/True",fontsize=10,color="white",style="solid",shape="box"];232 -> 1112[label="",style="solid", color="burlywood", weight=9]; 1112 -> 244[label="",style="solid", color="burlywood", weight=3]; 370[label="gcd0Gcd'2 (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];370 -> 390[label="",style="solid", color="black", weight=3]; 371[label="vuz20",fontsize=16,color="green",shape="box"];372[label="gcd1 False vuz21 vuz20",fontsize=16,color="black",shape="box"];372 -> 391[label="",style="solid", color="black", weight=3]; 373[label="gcd1 True vuz21 vuz20",fontsize=16,color="black",shape="box"];373 -> 392[label="",style="solid", color="black", weight=3]; 382[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];382 -> 405[label="",style="dashed", color="green", weight=3]; 383 -> 356[label="",style="dashed", color="red", weight=0]; 383[label="error []",fontsize=16,color="magenta"];384[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];384 -> 406[label="",style="dashed", color="green", weight=3]; 385 -> 356[label="",style="dashed", color="red", weight=0]; 385[label="error []",fontsize=16,color="magenta"];386[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];386 -> 407[label="",style="dashed", color="green", weight=3]; 387 -> 356[label="",style="dashed", color="red", weight=0]; 387[label="error []",fontsize=16,color="magenta"];388[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];388 -> 408[label="",style="dashed", color="green", weight=3]; 389 -> 356[label="",style="dashed", color="red", weight=0]; 389[label="error []",fontsize=16,color="magenta"];400 -> 409[label="",style="dashed", color="red", weight=0]; 400[label="gcd0Gcd' (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];400 -> 410[label="",style="dashed", color="magenta", weight=3]; 400 -> 411[label="",style="dashed", color="magenta", weight=3]; 402 -> 76[label="",style="dashed", color="red", weight=0]; 402[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];402 -> 414[label="",style="dashed", color="magenta", weight=3]; 401[label="gcd1 vuz45 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1113[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];401 -> 1113[label="",style="solid", color="burlywood", weight=9]; 1113 -> 415[label="",style="solid", color="burlywood", weight=3]; 1114[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];401 -> 1114[label="",style="solid", color="burlywood", weight=9]; 1114 -> 416[label="",style="solid", color="burlywood", weight=3]; 403[label="primDivNatS0 vuz2200 vuz4000 (primGEqNatS vuz2200 vuz4000)",fontsize=16,color="burlywood",shape="box"];1115[label="vuz2200/Succ vuz22000",fontsize=10,color="white",style="solid",shape="box"];403 -> 1115[label="",style="solid", color="burlywood", weight=9]; 1115 -> 417[label="",style="solid", color="burlywood", weight=3]; 1116[label="vuz2200/Zero",fontsize=10,color="white",style="solid",shape="box"];403 -> 1116[label="",style="solid", color="burlywood", weight=9]; 1116 -> 418[label="",style="solid", color="burlywood", weight=3]; 404[label="Zero",fontsize=16,color="green",shape="box"];241[label="primQuotInt (Neg vuz220) (gcd0Gcd'2 (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];241 -> 251[label="",style="solid", color="black", weight=3]; 242[label="vuz23",fontsize=16,color="green",shape="box"];243[label="primQuotInt (Neg vuz220) (gcd1 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];243 -> 252[label="",style="solid", color="black", weight=3]; 244[label="primQuotInt (Neg vuz220) (gcd1 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];244 -> 253[label="",style="solid", color="black", weight=3]; 390 -> 419[label="",style="dashed", color="red", weight=0]; 390[label="gcd0Gcd'1 (abs vuz20 == fromInt (Pos Zero)) (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];390 -> 420[label="",style="dashed", color="magenta", weight=3]; 391 -> 334[label="",style="dashed", color="red", weight=0]; 391[label="gcd0 vuz21 vuz20",fontsize=16,color="magenta"];392[label="error []",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 405 -> 377[label="",style="dashed", color="red", weight=0]; 405[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];405 -> 422[label="",style="dashed", color="magenta", weight=3]; 405 -> 423[label="",style="dashed", color="magenta", weight=3]; 406 -> 377[label="",style="dashed", color="red", weight=0]; 406[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];406 -> 424[label="",style="dashed", color="magenta", weight=3]; 406 -> 425[label="",style="dashed", color="magenta", weight=3]; 407 -> 377[label="",style="dashed", color="red", weight=0]; 407[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];407 -> 426[label="",style="dashed", color="magenta", weight=3]; 407 -> 427[label="",style="dashed", color="magenta", weight=3]; 408 -> 377[label="",style="dashed", color="red", weight=0]; 408[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];408 -> 428[label="",style="dashed", color="magenta", weight=3]; 408 -> 429[label="",style="dashed", color="magenta", weight=3]; 410 -> 266[label="",style="dashed", color="red", weight=0]; 410[label="abs vuz24",fontsize=16,color="magenta"];410 -> 430[label="",style="dashed", color="magenta", weight=3]; 411 -> 266[label="",style="dashed", color="red", weight=0]; 411[label="abs vuz23",fontsize=16,color="magenta"];409[label="gcd0Gcd' vuz47 vuz46",fontsize=16,color="black",shape="triangle"];409 -> 431[label="",style="solid", color="black", weight=3]; 414[label="vuz23",fontsize=16,color="green",shape="box"];415[label="gcd1 False vuz24 vuz23",fontsize=16,color="black",shape="box"];415 -> 432[label="",style="solid", color="black", weight=3]; 416[label="gcd1 True vuz24 vuz23",fontsize=16,color="black",shape="box"];416 -> 433[label="",style="solid", color="black", weight=3]; 417[label="primDivNatS0 (Succ vuz22000) vuz4000 (primGEqNatS (Succ vuz22000) vuz4000)",fontsize=16,color="burlywood",shape="box"];1117[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];417 -> 1117[label="",style="solid", color="burlywood", weight=9]; 1117 -> 434[label="",style="solid", color="burlywood", weight=3]; 1118[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];417 -> 1118[label="",style="solid", color="burlywood", weight=9]; 1118 -> 435[label="",style="solid", color="burlywood", weight=3]; 418[label="primDivNatS0 Zero vuz4000 (primGEqNatS Zero vuz4000)",fontsize=16,color="burlywood",shape="box"];1119[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];418 -> 1119[label="",style="solid", color="burlywood", weight=9]; 1119 -> 436[label="",style="solid", color="burlywood", weight=3]; 1120[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 1120[label="",style="solid", color="burlywood", weight=9]; 1120 -> 437[label="",style="solid", color="burlywood", weight=3]; 251 -> 260[label="",style="dashed", color="red", weight=0]; 251[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 (abs vuz23 == fromInt (Pos Zero)) (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];251 -> 261[label="",style="dashed", color="magenta", weight=3]; 252 -> 222[label="",style="dashed", color="red", weight=0]; 252[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="magenta"];253[label="primQuotInt (Neg vuz220) (error [])",fontsize=16,color="black",shape="box"];253 -> 262[label="",style="solid", color="black", weight=3]; 420 -> 78[label="",style="dashed", color="red", weight=0]; 420[label="abs vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];420 -> 438[label="",style="dashed", color="magenta", weight=3]; 419[label="gcd0Gcd'1 vuz48 (abs vuz21) (abs vuz20)",fontsize=16,color="burlywood",shape="triangle"];1121[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];419 -> 1121[label="",style="solid", color="burlywood", weight=9]; 1121 -> 439[label="",style="solid", color="burlywood", weight=3]; 1122[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];419 -> 1122[label="",style="solid", color="burlywood", weight=9]; 1122 -> 440[label="",style="solid", color="burlywood", weight=3]; 421[label="error []",fontsize=16,color="red",shape="box"];422[label="vuz36000",fontsize=16,color="green",shape="box"];423[label="vuz1900",fontsize=16,color="green",shape="box"];424[label="vuz36000",fontsize=16,color="green",shape="box"];425[label="vuz1900",fontsize=16,color="green",shape="box"];426[label="vuz36000",fontsize=16,color="green",shape="box"];427[label="vuz1900",fontsize=16,color="green",shape="box"];428[label="vuz36000",fontsize=16,color="green",shape="box"];429[label="vuz1900",fontsize=16,color="green",shape="box"];430[label="vuz24",fontsize=16,color="green",shape="box"];266[label="abs vuz23",fontsize=16,color="black",shape="triangle"];266 -> 295[label="",style="solid", color="black", weight=3]; 431[label="gcd0Gcd'2 vuz47 vuz46",fontsize=16,color="black",shape="box"];431 -> 443[label="",style="solid", color="black", weight=3]; 432 -> 380[label="",style="dashed", color="red", weight=0]; 432[label="gcd0 vuz24 vuz23",fontsize=16,color="magenta"];433 -> 356[label="",style="dashed", color="red", weight=0]; 433[label="error []",fontsize=16,color="magenta"];434[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS (Succ vuz22000) (Succ vuz40000))",fontsize=16,color="black",shape="box"];434 -> 444[label="",style="solid", color="black", weight=3]; 435[label="primDivNatS0 (Succ vuz22000) Zero (primGEqNatS (Succ vuz22000) Zero)",fontsize=16,color="black",shape="box"];435 -> 445[label="",style="solid", color="black", weight=3]; 436[label="primDivNatS0 Zero (Succ vuz40000) (primGEqNatS Zero (Succ vuz40000))",fontsize=16,color="black",shape="box"];436 -> 446[label="",style="solid", color="black", weight=3]; 437[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];437 -> 447[label="",style="solid", color="black", weight=3]; 261 -> 76[label="",style="dashed", color="red", weight=0]; 261[label="abs vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];261 -> 269[label="",style="dashed", color="magenta", weight=3]; 260[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 vuz33 (abs vuz24) (abs vuz23))",fontsize=16,color="burlywood",shape="triangle"];1123[label="vuz33/False",fontsize=10,color="white",style="solid",shape="box"];260 -> 1123[label="",style="solid", color="burlywood", weight=9]; 1123 -> 270[label="",style="solid", color="burlywood", weight=3]; 1124[label="vuz33/True",fontsize=10,color="white",style="solid",shape="box"];260 -> 1124[label="",style="solid", color="burlywood", weight=9]; 1124 -> 271[label="",style="solid", color="burlywood", weight=3]; 262[label="error []",fontsize=16,color="red",shape="box"];438[label="abs vuz20",fontsize=16,color="black",shape="triangle"];438 -> 448[label="",style="solid", color="black", weight=3]; 439[label="gcd0Gcd'1 False (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];439 -> 449[label="",style="solid", color="black", weight=3]; 440[label="gcd0Gcd'1 True (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];440 -> 450[label="",style="solid", color="black", weight=3]; 295[label="absReal vuz23",fontsize=16,color="black",shape="box"];295 -> 302[label="",style="solid", color="black", weight=3]; 443 -> 454[label="",style="dashed", color="red", weight=0]; 443[label="gcd0Gcd'1 (vuz46 == fromInt (Pos Zero)) vuz47 vuz46",fontsize=16,color="magenta"];443 -> 455[label="",style="dashed", color="magenta", weight=3]; 444 -> 791[label="",style="dashed", color="red", weight=0]; 444[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS vuz22000 vuz40000)",fontsize=16,color="magenta"];444 -> 792[label="",style="dashed", color="magenta", weight=3]; 444 -> 793[label="",style="dashed", color="magenta", weight=3]; 444 -> 794[label="",style="dashed", color="magenta", weight=3]; 444 -> 795[label="",style="dashed", color="magenta", weight=3]; 445[label="primDivNatS0 (Succ vuz22000) Zero True",fontsize=16,color="black",shape="box"];445 -> 458[label="",style="solid", color="black", weight=3]; 446[label="primDivNatS0 Zero (Succ vuz40000) False",fontsize=16,color="black",shape="box"];446 -> 459[label="",style="solid", color="black", weight=3]; 447[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];447 -> 460[label="",style="solid", color="black", weight=3]; 269 -> 266[label="",style="dashed", color="red", weight=0]; 269[label="abs vuz23",fontsize=16,color="magenta"];270[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 False (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];270 -> 298[label="",style="solid", color="black", weight=3]; 271[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 True (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];271 -> 299[label="",style="solid", color="black", weight=3]; 448[label="absReal vuz20",fontsize=16,color="black",shape="box"];448 -> 461[label="",style="solid", color="black", weight=3]; 449 -> 462[label="",style="dashed", color="red", weight=0]; 449[label="gcd0Gcd'0 (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];449 -> 463[label="",style="dashed", color="magenta", weight=3]; 449 -> 464[label="",style="dashed", color="magenta", weight=3]; 450 -> 438[label="",style="dashed", color="red", weight=0]; 450[label="abs vuz21",fontsize=16,color="magenta"];450 -> 465[label="",style="dashed", color="magenta", weight=3]; 302[label="absReal2 vuz23",fontsize=16,color="black",shape="box"];302 -> 340[label="",style="solid", color="black", weight=3]; 455 -> 76[label="",style="dashed", color="red", weight=0]; 455[label="vuz46 == fromInt (Pos Zero)",fontsize=16,color="magenta"];455 -> 466[label="",style="dashed", color="magenta", weight=3]; 454[label="gcd0Gcd'1 vuz49 vuz47 vuz46",fontsize=16,color="burlywood",shape="triangle"];1125[label="vuz49/False",fontsize=10,color="white",style="solid",shape="box"];454 -> 1125[label="",style="solid", color="burlywood", weight=9]; 1125 -> 467[label="",style="solid", color="burlywood", weight=3]; 1126[label="vuz49/True",fontsize=10,color="white",style="solid",shape="box"];454 -> 1126[label="",style="solid", color="burlywood", weight=9]; 1126 -> 468[label="",style="solid", color="burlywood", weight=3]; 792[label="vuz22000",fontsize=16,color="green",shape="box"];793[label="vuz40000",fontsize=16,color="green",shape="box"];794[label="vuz40000",fontsize=16,color="green",shape="box"];795[label="vuz22000",fontsize=16,color="green",shape="box"];791[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz71 vuz72)",fontsize=16,color="burlywood",shape="triangle"];1127[label="vuz71/Succ vuz710",fontsize=10,color="white",style="solid",shape="box"];791 -> 1127[label="",style="solid", color="burlywood", weight=9]; 1127 -> 824[label="",style="solid", color="burlywood", weight=3]; 1128[label="vuz71/Zero",fontsize=10,color="white",style="solid",shape="box"];791 -> 1128[label="",style="solid", color="burlywood", weight=9]; 1128 -> 825[label="",style="solid", color="burlywood", weight=3]; 458[label="Succ (primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];458 -> 473[label="",style="dashed", color="green", weight=3]; 459[label="Zero",fontsize=16,color="green",shape="box"];460[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];460 -> 474[label="",style="dashed", color="green", weight=3]; 298 -> 308[label="",style="dashed", color="red", weight=0]; 298[label="primQuotInt (Neg vuz220) (gcd0Gcd'0 (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];298 -> 336[label="",style="dashed", color="magenta", weight=3]; 298 -> 337[label="",style="dashed", color="magenta", weight=3]; 299 -> 308[label="",style="dashed", color="red", weight=0]; 299[label="primQuotInt (Neg vuz220) (abs vuz24)",fontsize=16,color="magenta"];299 -> 338[label="",style="dashed", color="magenta", weight=3]; 299 -> 339[label="",style="dashed", color="magenta", weight=3]; 461[label="absReal2 vuz20",fontsize=16,color="black",shape="box"];461 -> 475[label="",style="solid", color="black", weight=3]; 463 -> 438[label="",style="dashed", color="red", weight=0]; 463[label="abs vuz21",fontsize=16,color="magenta"];463 -> 476[label="",style="dashed", color="magenta", weight=3]; 464 -> 438[label="",style="dashed", color="red", weight=0]; 464[label="abs vuz20",fontsize=16,color="magenta"];462[label="gcd0Gcd'0 vuz51 vuz50",fontsize=16,color="black",shape="triangle"];462 -> 477[label="",style="solid", color="black", weight=3]; 465[label="vuz21",fontsize=16,color="green",shape="box"];340[label="absReal1 vuz23 (vuz23 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];340 -> 396[label="",style="solid", color="black", weight=3]; 466[label="vuz46",fontsize=16,color="green",shape="box"];467[label="gcd0Gcd'1 False vuz47 vuz46",fontsize=16,color="black",shape="box"];467 -> 484[label="",style="solid", color="black", weight=3]; 468[label="gcd0Gcd'1 True vuz47 vuz46",fontsize=16,color="black",shape="box"];468 -> 485[label="",style="solid", color="black", weight=3]; 824[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) vuz72)",fontsize=16,color="burlywood",shape="box"];1129[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];824 -> 1129[label="",style="solid", color="burlywood", weight=9]; 1129 -> 832[label="",style="solid", color="burlywood", weight=3]; 1130[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];824 -> 1130[label="",style="solid", color="burlywood", weight=9]; 1130 -> 833[label="",style="solid", color="burlywood", weight=3]; 825[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero vuz72)",fontsize=16,color="burlywood",shape="box"];1131[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];825 -> 1131[label="",style="solid", color="burlywood", weight=9]; 1131 -> 834[label="",style="solid", color="burlywood", weight=3]; 1132[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];825 -> 1132[label="",style="solid", color="burlywood", weight=9]; 1132 -> 835[label="",style="solid", color="burlywood", weight=3]; 473 -> 377[label="",style="dashed", color="red", weight=0]; 473[label="primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero)",fontsize=16,color="magenta"];473 -> 490[label="",style="dashed", color="magenta", weight=3]; 473 -> 491[label="",style="dashed", color="magenta", weight=3]; 474 -> 377[label="",style="dashed", color="red", weight=0]; 474[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];474 -> 492[label="",style="dashed", color="magenta", weight=3]; 474 -> 493[label="",style="dashed", color="magenta", weight=3]; 336[label="Neg vuz220",fontsize=16,color="green",shape="box"];337 -> 374[label="",style="dashed", color="red", weight=0]; 337[label="gcd0Gcd'0 (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];337 -> 375[label="",style="dashed", color="magenta", weight=3]; 337 -> 376[label="",style="dashed", color="magenta", weight=3]; 338[label="Neg vuz220",fontsize=16,color="green",shape="box"];339 -> 266[label="",style="dashed", color="red", weight=0]; 339[label="abs vuz24",fontsize=16,color="magenta"];339 -> 393[label="",style="dashed", color="magenta", weight=3]; 475[label="absReal1 vuz20 (vuz20 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];475 -> 494[label="",style="solid", color="black", weight=3]; 476[label="vuz21",fontsize=16,color="green",shape="box"];477[label="gcd0Gcd' vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];477 -> 495[label="",style="solid", color="black", weight=3]; 396[label="absReal1 vuz23 (compare vuz23 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];396 -> 441[label="",style="solid", color="black", weight=3]; 484 -> 374[label="",style="dashed", color="red", weight=0]; 484[label="gcd0Gcd'0 vuz47 vuz46",fontsize=16,color="magenta"];484 -> 508[label="",style="dashed", color="magenta", weight=3]; 484 -> 509[label="",style="dashed", color="magenta", weight=3]; 485[label="vuz47",fontsize=16,color="green",shape="box"];832[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) (Succ vuz720))",fontsize=16,color="black",shape="box"];832 -> 844[label="",style="solid", color="black", weight=3]; 833[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) Zero)",fontsize=16,color="black",shape="box"];833 -> 845[label="",style="solid", color="black", weight=3]; 834[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero (Succ vuz720))",fontsize=16,color="black",shape="box"];834 -> 846[label="",style="solid", color="black", weight=3]; 835[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];835 -> 847[label="",style="solid", color="black", weight=3]; 490[label="Zero",fontsize=16,color="green",shape="box"];491[label="primMinusNatS (Succ vuz22000) Zero",fontsize=16,color="black",shape="triangle"];491 -> 515[label="",style="solid", color="black", weight=3]; 492[label="Zero",fontsize=16,color="green",shape="box"];493[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];493 -> 516[label="",style="solid", color="black", weight=3]; 375 -> 266[label="",style="dashed", color="red", weight=0]; 375[label="abs vuz24",fontsize=16,color="magenta"];375 -> 394[label="",style="dashed", color="magenta", weight=3]; 376 -> 266[label="",style="dashed", color="red", weight=0]; 376[label="abs vuz23",fontsize=16,color="magenta"];374[label="gcd0Gcd'0 vuz44 vuz43",fontsize=16,color="black",shape="triangle"];374 -> 395[label="",style="solid", color="black", weight=3]; 393[label="vuz24",fontsize=16,color="green",shape="box"];494[label="absReal1 vuz20 (compare vuz20 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];494 -> 517[label="",style="solid", color="black", weight=3]; 495[label="gcd0Gcd'2 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];495 -> 518[label="",style="solid", color="black", weight=3]; 441[label="absReal1 vuz23 (not (compare vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];441 -> 451[label="",style="solid", color="black", weight=3]; 508[label="vuz47",fontsize=16,color="green",shape="box"];509[label="vuz46",fontsize=16,color="green",shape="box"];844 -> 791[label="",style="dashed", color="red", weight=0]; 844[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz710 vuz720)",fontsize=16,color="magenta"];844 -> 854[label="",style="dashed", color="magenta", weight=3]; 844 -> 855[label="",style="dashed", color="magenta", weight=3]; 845[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="black",shape="triangle"];845 -> 856[label="",style="solid", color="black", weight=3]; 846[label="primDivNatS0 (Succ vuz69) (Succ vuz70) False",fontsize=16,color="black",shape="box"];846 -> 857[label="",style="solid", color="black", weight=3]; 847 -> 845[label="",style="dashed", color="red", weight=0]; 847[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="magenta"];515[label="Succ vuz22000",fontsize=16,color="green",shape="box"];516[label="Zero",fontsize=16,color="green",shape="box"];394[label="vuz24",fontsize=16,color="green",shape="box"];395 -> 409[label="",style="dashed", color="red", weight=0]; 395[label="gcd0Gcd' vuz43 (vuz44 `rem` vuz43)",fontsize=16,color="magenta"];395 -> 412[label="",style="dashed", color="magenta", weight=3]; 395 -> 413[label="",style="dashed", color="magenta", weight=3]; 517[label="absReal1 vuz20 (not (compare vuz20 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1133[label="vuz20/Integer vuz200",fontsize=10,color="white",style="solid",shape="box"];517 -> 1133[label="",style="solid", color="burlywood", weight=9]; 1133 -> 537[label="",style="solid", color="burlywood", weight=3]; 518 -> 538[label="",style="dashed", color="red", weight=0]; 518[label="gcd0Gcd'1 (vuz51 `rem` vuz50 == fromInt (Pos Zero)) vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];518 -> 539[label="",style="dashed", color="magenta", weight=3]; 451[label="absReal1 vuz23 (not (primCmpInt vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1134[label="vuz23/Pos vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1134[label="",style="solid", color="burlywood", weight=9]; 1134 -> 478[label="",style="solid", color="burlywood", weight=3]; 1135[label="vuz23/Neg vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1135[label="",style="solid", color="burlywood", weight=9]; 1135 -> 479[label="",style="solid", color="burlywood", weight=3]; 854[label="vuz710",fontsize=16,color="green",shape="box"];855[label="vuz720",fontsize=16,color="green",shape="box"];856[label="Succ (primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70)))",fontsize=16,color="green",shape="box"];856 -> 864[label="",style="dashed", color="green", weight=3]; 857[label="Zero",fontsize=16,color="green",shape="box"];412[label="vuz43",fontsize=16,color="green",shape="box"];413[label="vuz44 `rem` vuz43",fontsize=16,color="black",shape="box"];413 -> 442[label="",style="solid", color="black", weight=3]; 537[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];537 -> 548[label="",style="solid", color="black", weight=3]; 539 -> 78[label="",style="dashed", color="red", weight=0]; 539[label="vuz51 `rem` vuz50 == fromInt (Pos Zero)",fontsize=16,color="magenta"];539 -> 549[label="",style="dashed", color="magenta", weight=3]; 538[label="gcd0Gcd'1 vuz52 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="burlywood",shape="triangle"];1136[label="vuz52/False",fontsize=10,color="white",style="solid",shape="box"];538 -> 1136[label="",style="solid", color="burlywood", weight=9]; 1136 -> 550[label="",style="solid", color="burlywood", weight=3]; 1137[label="vuz52/True",fontsize=10,color="white",style="solid",shape="box"];538 -> 1137[label="",style="solid", color="burlywood", weight=9]; 1137 -> 551[label="",style="solid", color="burlywood", weight=3]; 478[label="absReal1 (Pos vuz230) (not (primCmpInt (Pos vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1138[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];478 -> 1138[label="",style="solid", color="burlywood", weight=9]; 1138 -> 496[label="",style="solid", color="burlywood", weight=3]; 1139[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];478 -> 1139[label="",style="solid", color="burlywood", weight=9]; 1139 -> 497[label="",style="solid", color="burlywood", weight=3]; 479[label="absReal1 (Neg vuz230) (not (primCmpInt (Neg vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1140[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];479 -> 1140[label="",style="solid", color="burlywood", weight=9]; 1140 -> 498[label="",style="solid", color="burlywood", weight=3]; 1141[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];479 -> 1141[label="",style="solid", color="burlywood", weight=9]; 1141 -> 499[label="",style="solid", color="burlywood", weight=3]; 864 -> 377[label="",style="dashed", color="red", weight=0]; 864[label="primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70))",fontsize=16,color="magenta"];864 -> 873[label="",style="dashed", color="magenta", weight=3]; 864 -> 874[label="",style="dashed", color="magenta", weight=3]; 442[label="primRemInt vuz44 vuz43",fontsize=16,color="burlywood",shape="triangle"];1142[label="vuz44/Pos vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1142[label="",style="solid", color="burlywood", weight=9]; 1142 -> 452[label="",style="solid", color="burlywood", weight=3]; 1143[label="vuz44/Neg vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1143[label="",style="solid", color="burlywood", weight=9]; 1143 -> 453[label="",style="solid", color="burlywood", weight=3]; 548[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];548 -> 567[label="",style="solid", color="black", weight=3]; 549[label="vuz51 `rem` vuz50",fontsize=16,color="burlywood",shape="triangle"];1144[label="vuz51/Integer vuz510",fontsize=10,color="white",style="solid",shape="box"];549 -> 1144[label="",style="solid", color="burlywood", weight=9]; 1144 -> 568[label="",style="solid", color="burlywood", weight=3]; 550[label="gcd0Gcd'1 False vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];550 -> 569[label="",style="solid", color="black", weight=3]; 551[label="gcd0Gcd'1 True vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];551 -> 570[label="",style="solid", color="black", weight=3]; 496[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];496 -> 519[label="",style="solid", color="black", weight=3]; 497[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];497 -> 520[label="",style="solid", color="black", weight=3]; 498[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];498 -> 521[label="",style="solid", color="black", weight=3]; 499[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];499 -> 522[label="",style="solid", color="black", weight=3]; 873[label="Succ vuz70",fontsize=16,color="green",shape="box"];874[label="primMinusNatS (Succ vuz69) (Succ vuz70)",fontsize=16,color="black",shape="triangle"];874 -> 881[label="",style="solid", color="black", weight=3]; 452[label="primRemInt (Pos vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1145[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1145[label="",style="solid", color="burlywood", weight=9]; 1145 -> 480[label="",style="solid", color="burlywood", weight=3]; 1146[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1146[label="",style="solid", color="burlywood", weight=9]; 1146 -> 481[label="",style="solid", color="burlywood", weight=3]; 453[label="primRemInt (Neg vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1147[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1147[label="",style="solid", color="burlywood", weight=9]; 1147 -> 482[label="",style="solid", color="burlywood", weight=3]; 1148[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1148[label="",style="solid", color="burlywood", weight=9]; 1148 -> 483[label="",style="solid", color="burlywood", weight=3]; 567[label="absReal1 (Integer vuz200) (not (primCmpInt vuz200 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1149[label="vuz200/Pos vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1149[label="",style="solid", color="burlywood", weight=9]; 1149 -> 588[label="",style="solid", color="burlywood", weight=3]; 1150[label="vuz200/Neg vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1150[label="",style="solid", color="burlywood", weight=9]; 1150 -> 589[label="",style="solid", color="burlywood", weight=3]; 568[label="Integer vuz510 `rem` vuz50",fontsize=16,color="burlywood",shape="box"];1151[label="vuz50/Integer vuz500",fontsize=10,color="white",style="solid",shape="box"];568 -> 1151[label="",style="solid", color="burlywood", weight=9]; 1151 -> 590[label="",style="solid", color="burlywood", weight=3]; 569 -> 462[label="",style="dashed", color="red", weight=0]; 569[label="gcd0Gcd'0 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];569 -> 591[label="",style="dashed", color="magenta", weight=3]; 569 -> 592[label="",style="dashed", color="magenta", weight=3]; 570[label="vuz50",fontsize=16,color="green",shape="box"];519[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];519 -> 552[label="",style="solid", color="black", weight=3]; 520[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];520 -> 553[label="",style="solid", color="black", weight=3]; 521[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];521 -> 554[label="",style="solid", color="black", weight=3]; 522[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];522 -> 555[label="",style="solid", color="black", weight=3]; 881[label="primMinusNatS vuz69 vuz70",fontsize=16,color="burlywood",shape="triangle"];1152[label="vuz69/Succ vuz690",fontsize=10,color="white",style="solid",shape="box"];881 -> 1152[label="",style="solid", color="burlywood", weight=9]; 1152 -> 891[label="",style="solid", color="burlywood", weight=3]; 1153[label="vuz69/Zero",fontsize=10,color="white",style="solid",shape="box"];881 -> 1153[label="",style="solid", color="burlywood", weight=9]; 1153 -> 892[label="",style="solid", color="burlywood", weight=3]; 480[label="primRemInt (Pos vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1154[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];480 -> 1154[label="",style="solid", color="burlywood", weight=9]; 1154 -> 500[label="",style="solid", color="burlywood", weight=3]; 1155[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];480 -> 1155[label="",style="solid", color="burlywood", weight=9]; 1155 -> 501[label="",style="solid", color="burlywood", weight=3]; 481[label="primRemInt (Pos vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1156[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];481 -> 1156[label="",style="solid", color="burlywood", weight=9]; 1156 -> 502[label="",style="solid", color="burlywood", weight=3]; 1157[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];481 -> 1157[label="",style="solid", color="burlywood", weight=9]; 1157 -> 503[label="",style="solid", color="burlywood", weight=3]; 482[label="primRemInt (Neg vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1158[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];482 -> 1158[label="",style="solid", color="burlywood", weight=9]; 1158 -> 504[label="",style="solid", color="burlywood", weight=3]; 1159[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];482 -> 1159[label="",style="solid", color="burlywood", weight=9]; 1159 -> 505[label="",style="solid", color="burlywood", weight=3]; 483[label="primRemInt (Neg vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1160[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];483 -> 1160[label="",style="solid", color="burlywood", weight=9]; 1160 -> 506[label="",style="solid", color="burlywood", weight=3]; 1161[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];483 -> 1161[label="",style="solid", color="burlywood", weight=9]; 1161 -> 507[label="",style="solid", color="burlywood", weight=3]; 588[label="absReal1 (Integer (Pos vuz2000)) (not (primCmpInt (Pos vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1162[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];588 -> 1162[label="",style="solid", color="burlywood", weight=9]; 1162 -> 607[label="",style="solid", color="burlywood", weight=3]; 1163[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];588 -> 1163[label="",style="solid", color="burlywood", weight=9]; 1163 -> 608[label="",style="solid", color="burlywood", weight=3]; 589[label="absReal1 (Integer (Neg vuz2000)) (not (primCmpInt (Neg vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1164[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];589 -> 1164[label="",style="solid", color="burlywood", weight=9]; 1164 -> 609[label="",style="solid", color="burlywood", weight=3]; 1165[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 1165[label="",style="solid", color="burlywood", weight=9]; 1165 -> 610[label="",style="solid", color="burlywood", weight=3]; 590[label="Integer vuz510 `rem` Integer vuz500",fontsize=16,color="black",shape="box"];590 -> 611[label="",style="solid", color="black", weight=3]; 591[label="vuz50",fontsize=16,color="green",shape="box"];592 -> 549[label="",style="dashed", color="red", weight=0]; 592[label="vuz51 `rem` vuz50",fontsize=16,color="magenta"];552[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpNat (Succ vuz2300) Zero == LT))",fontsize=16,color="black",shape="box"];552 -> 571[label="",style="solid", color="black", weight=3]; 553[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];553 -> 572[label="",style="solid", color="black", weight=3]; 554[label="absReal1 (Neg (Succ vuz2300)) (not (LT == LT))",fontsize=16,color="black",shape="box"];554 -> 573[label="",style="solid", color="black", weight=3]; 555[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];555 -> 574[label="",style="solid", color="black", weight=3]; 891[label="primMinusNatS (Succ vuz690) vuz70",fontsize=16,color="burlywood",shape="box"];1166[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];891 -> 1166[label="",style="solid", color="burlywood", weight=9]; 1166 -> 901[label="",style="solid", color="burlywood", weight=3]; 1167[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];891 -> 1167[label="",style="solid", color="burlywood", weight=9]; 1167 -> 902[label="",style="solid", color="burlywood", weight=3]; 892[label="primMinusNatS Zero vuz70",fontsize=16,color="burlywood",shape="box"];1168[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];892 -> 1168[label="",style="solid", color="burlywood", weight=9]; 1168 -> 903[label="",style="solid", color="burlywood", weight=3]; 1169[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];892 -> 1169[label="",style="solid", color="burlywood", weight=9]; 1169 -> 904[label="",style="solid", color="burlywood", weight=3]; 500[label="primRemInt (Pos vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];500 -> 523[label="",style="solid", color="black", weight=3]; 501[label="primRemInt (Pos vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];501 -> 524[label="",style="solid", color="black", weight=3]; 502[label="primRemInt (Pos vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];502 -> 525[label="",style="solid", color="black", weight=3]; 503[label="primRemInt (Pos vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];503 -> 526[label="",style="solid", color="black", weight=3]; 504[label="primRemInt (Neg vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];504 -> 527[label="",style="solid", color="black", weight=3]; 505[label="primRemInt (Neg vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];505 -> 528[label="",style="solid", color="black", weight=3]; 506[label="primRemInt (Neg vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];506 -> 529[label="",style="solid", color="black", weight=3]; 507[label="primRemInt (Neg vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];507 -> 530[label="",style="solid", color="black", weight=3]; 607[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpInt (Pos (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];607 -> 625[label="",style="solid", color="black", weight=3]; 608[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];608 -> 626[label="",style="solid", color="black", weight=3]; 609[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (primCmpInt (Neg (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];609 -> 627[label="",style="solid", color="black", weight=3]; 610[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];610 -> 628[label="",style="solid", color="black", weight=3]; 611[label="Integer (primRemInt vuz510 vuz500)",fontsize=16,color="green",shape="box"];611 -> 629[label="",style="dashed", color="green", weight=3]; 571[label="absReal1 (Pos (Succ vuz2300)) (not (GT == LT))",fontsize=16,color="black",shape="box"];571 -> 593[label="",style="solid", color="black", weight=3]; 572[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];572 -> 594[label="",style="solid", color="black", weight=3]; 573[label="absReal1 (Neg (Succ vuz2300)) (not True)",fontsize=16,color="black",shape="box"];573 -> 595[label="",style="solid", color="black", weight=3]; 574[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];574 -> 596[label="",style="solid", color="black", weight=3]; 901[label="primMinusNatS (Succ vuz690) (Succ vuz700)",fontsize=16,color="black",shape="box"];901 -> 913[label="",style="solid", color="black", weight=3]; 902[label="primMinusNatS (Succ vuz690) Zero",fontsize=16,color="black",shape="box"];902 -> 914[label="",style="solid", color="black", weight=3]; 903[label="primMinusNatS Zero (Succ vuz700)",fontsize=16,color="black",shape="box"];903 -> 915[label="",style="solid", color="black", weight=3]; 904[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];904 -> 916[label="",style="solid", color="black", weight=3]; 523[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];523 -> 556[label="",style="dashed", color="green", weight=3]; 524 -> 356[label="",style="dashed", color="red", weight=0]; 524[label="error []",fontsize=16,color="magenta"];525[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];525 -> 557[label="",style="dashed", color="green", weight=3]; 526 -> 356[label="",style="dashed", color="red", weight=0]; 526[label="error []",fontsize=16,color="magenta"];527[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];527 -> 558[label="",style="dashed", color="green", weight=3]; 528 -> 356[label="",style="dashed", color="red", weight=0]; 528[label="error []",fontsize=16,color="magenta"];529[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];529 -> 559[label="",style="dashed", color="green", weight=3]; 530 -> 356[label="",style="dashed", color="red", weight=0]; 530[label="error []",fontsize=16,color="magenta"];625[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpNat (Succ vuz20000) Zero == LT))",fontsize=16,color="black",shape="box"];625 -> 643[label="",style="solid", color="black", weight=3]; 626[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];626 -> 644[label="",style="solid", color="black", weight=3]; 627[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];627 -> 645[label="",style="solid", color="black", weight=3]; 628[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];628 -> 646[label="",style="solid", color="black", weight=3]; 629 -> 442[label="",style="dashed", color="red", weight=0]; 629[label="primRemInt vuz510 vuz500",fontsize=16,color="magenta"];629 -> 647[label="",style="dashed", color="magenta", weight=3]; 629 -> 648[label="",style="dashed", color="magenta", weight=3]; 593[label="absReal1 (Pos (Succ vuz2300)) (not False)",fontsize=16,color="black",shape="box"];593 -> 612[label="",style="solid", color="black", weight=3]; 594[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];594 -> 613[label="",style="solid", color="black", weight=3]; 595[label="absReal1 (Neg (Succ vuz2300)) False",fontsize=16,color="black",shape="box"];595 -> 614[label="",style="solid", color="black", weight=3]; 596[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];596 -> 615[label="",style="solid", color="black", weight=3]; 913 -> 881[label="",style="dashed", color="red", weight=0]; 913[label="primMinusNatS vuz690 vuz700",fontsize=16,color="magenta"];913 -> 921[label="",style="dashed", color="magenta", weight=3]; 913 -> 922[label="",style="dashed", color="magenta", weight=3]; 914[label="Succ vuz690",fontsize=16,color="green",shape="box"];915[label="Zero",fontsize=16,color="green",shape="box"];916[label="Zero",fontsize=16,color="green",shape="box"];556[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="burlywood",shape="triangle"];1170[label="vuz440/Succ vuz4400",fontsize=10,color="white",style="solid",shape="box"];556 -> 1170[label="",style="solid", color="burlywood", weight=9]; 1170 -> 575[label="",style="solid", color="burlywood", weight=3]; 1171[label="vuz440/Zero",fontsize=10,color="white",style="solid",shape="box"];556 -> 1171[label="",style="solid", color="burlywood", weight=9]; 1171 -> 576[label="",style="solid", color="burlywood", weight=3]; 557 -> 556[label="",style="dashed", color="red", weight=0]; 557[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];557 -> 577[label="",style="dashed", color="magenta", weight=3]; 558 -> 556[label="",style="dashed", color="red", weight=0]; 558[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];558 -> 578[label="",style="dashed", color="magenta", weight=3]; 559 -> 556[label="",style="dashed", color="red", weight=0]; 559[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];559 -> 579[label="",style="dashed", color="magenta", weight=3]; 559 -> 580[label="",style="dashed", color="magenta", weight=3]; 643[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];643 -> 662[label="",style="solid", color="black", weight=3]; 644[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];644 -> 663[label="",style="solid", color="black", weight=3]; 645[label="absReal1 (Integer (Neg (Succ vuz20000))) (not True)",fontsize=16,color="black",shape="box"];645 -> 664[label="",style="solid", color="black", weight=3]; 646[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];646 -> 665[label="",style="solid", color="black", weight=3]; 647[label="vuz510",fontsize=16,color="green",shape="box"];648[label="vuz500",fontsize=16,color="green",shape="box"];612[label="absReal1 (Pos (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];612 -> 630[label="",style="solid", color="black", weight=3]; 613[label="Pos Zero",fontsize=16,color="green",shape="box"];614[label="absReal0 (Neg (Succ vuz2300)) otherwise",fontsize=16,color="black",shape="box"];614 -> 631[label="",style="solid", color="black", weight=3]; 615[label="Neg Zero",fontsize=16,color="green",shape="box"];921[label="vuz700",fontsize=16,color="green",shape="box"];922[label="vuz690",fontsize=16,color="green",shape="box"];575[label="primModNatS (Succ vuz4400) (Succ vuz4300)",fontsize=16,color="black",shape="box"];575 -> 597[label="",style="solid", color="black", weight=3]; 576[label="primModNatS Zero (Succ vuz4300)",fontsize=16,color="black",shape="box"];576 -> 598[label="",style="solid", color="black", weight=3]; 577[label="vuz4300",fontsize=16,color="green",shape="box"];578[label="vuz440",fontsize=16,color="green",shape="box"];579[label="vuz440",fontsize=16,color="green",shape="box"];580[label="vuz4300",fontsize=16,color="green",shape="box"];662[label="absReal1 (Integer (Pos (Succ vuz20000))) (not False)",fontsize=16,color="black",shape="box"];662 -> 679[label="",style="solid", color="black", weight=3]; 663[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];663 -> 680[label="",style="solid", color="black", weight=3]; 664[label="absReal1 (Integer (Neg (Succ vuz20000))) False",fontsize=16,color="black",shape="box"];664 -> 681[label="",style="solid", color="black", weight=3]; 665[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];665 -> 682[label="",style="solid", color="black", weight=3]; 630[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];631[label="absReal0 (Neg (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];631 -> 649[label="",style="solid", color="black", weight=3]; 597[label="primModNatS0 vuz4400 vuz4300 (primGEqNatS vuz4400 vuz4300)",fontsize=16,color="burlywood",shape="box"];1172[label="vuz4400/Succ vuz44000",fontsize=10,color="white",style="solid",shape="box"];597 -> 1172[label="",style="solid", color="burlywood", weight=9]; 1172 -> 616[label="",style="solid", color="burlywood", weight=3]; 1173[label="vuz4400/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 1173[label="",style="solid", color="burlywood", weight=9]; 1173 -> 617[label="",style="solid", color="burlywood", weight=3]; 598[label="Zero",fontsize=16,color="green",shape="box"];679[label="absReal1 (Integer (Pos (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];679 -> 699[label="",style="solid", color="black", weight=3]; 680[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];681[label="absReal0 (Integer (Neg (Succ vuz20000))) otherwise",fontsize=16,color="black",shape="box"];681 -> 700[label="",style="solid", color="black", weight=3]; 682[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];649[label="`negate` Neg (Succ vuz2300)",fontsize=16,color="black",shape="box"];649 -> 666[label="",style="solid", color="black", weight=3]; 616[label="primModNatS0 (Succ vuz44000) vuz4300 (primGEqNatS (Succ vuz44000) vuz4300)",fontsize=16,color="burlywood",shape="box"];1174[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];616 -> 1174[label="",style="solid", color="burlywood", weight=9]; 1174 -> 632[label="",style="solid", color="burlywood", weight=3]; 1175[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 1175[label="",style="solid", color="burlywood", weight=9]; 1175 -> 633[label="",style="solid", color="burlywood", weight=3]; 617[label="primModNatS0 Zero vuz4300 (primGEqNatS Zero vuz4300)",fontsize=16,color="burlywood",shape="box"];1176[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];617 -> 1176[label="",style="solid", color="burlywood", weight=9]; 1176 -> 634[label="",style="solid", color="burlywood", weight=3]; 1177[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 1177[label="",style="solid", color="burlywood", weight=9]; 1177 -> 635[label="",style="solid", color="burlywood", weight=3]; 699[label="Integer (Pos (Succ vuz20000))",fontsize=16,color="green",shape="box"];700[label="absReal0 (Integer (Neg (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];700 -> 714[label="",style="solid", color="black", weight=3]; 666[label="primNegInt (Neg (Succ vuz2300))",fontsize=16,color="black",shape="triangle"];666 -> 683[label="",style="solid", color="black", weight=3]; 632[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS (Succ vuz44000) (Succ vuz43000))",fontsize=16,color="black",shape="box"];632 -> 650[label="",style="solid", color="black", weight=3]; 633[label="primModNatS0 (Succ vuz44000) Zero (primGEqNatS (Succ vuz44000) Zero)",fontsize=16,color="black",shape="box"];633 -> 651[label="",style="solid", color="black", weight=3]; 634[label="primModNatS0 Zero (Succ vuz43000) (primGEqNatS Zero (Succ vuz43000))",fontsize=16,color="black",shape="box"];634 -> 652[label="",style="solid", color="black", weight=3]; 635[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];635 -> 653[label="",style="solid", color="black", weight=3]; 714[label="`negate` Integer (Neg (Succ vuz20000))",fontsize=16,color="black",shape="box"];714 -> 734[label="",style="solid", color="black", weight=3]; 683[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];650 -> 972[label="",style="dashed", color="red", weight=0]; 650[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS vuz44000 vuz43000)",fontsize=16,color="magenta"];650 -> 973[label="",style="dashed", color="magenta", weight=3]; 650 -> 974[label="",style="dashed", color="magenta", weight=3]; 650 -> 975[label="",style="dashed", color="magenta", weight=3]; 650 -> 976[label="",style="dashed", color="magenta", weight=3]; 651[label="primModNatS0 (Succ vuz44000) Zero True",fontsize=16,color="black",shape="box"];651 -> 669[label="",style="solid", color="black", weight=3]; 652[label="primModNatS0 Zero (Succ vuz43000) False",fontsize=16,color="black",shape="box"];652 -> 670[label="",style="solid", color="black", weight=3]; 653[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];653 -> 671[label="",style="solid", color="black", weight=3]; 734[label="Integer (primNegInt (Neg (Succ vuz20000)))",fontsize=16,color="green",shape="box"];734 -> 764[label="",style="dashed", color="green", weight=3]; 973[label="vuz44000",fontsize=16,color="green",shape="box"];974[label="vuz43000",fontsize=16,color="green",shape="box"];975[label="vuz44000",fontsize=16,color="green",shape="box"];976[label="vuz43000",fontsize=16,color="green",shape="box"];972[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz91 vuz92)",fontsize=16,color="burlywood",shape="triangle"];1178[label="vuz91/Succ vuz910",fontsize=10,color="white",style="solid",shape="box"];972 -> 1178[label="",style="solid", color="burlywood", weight=9]; 1178 -> 1005[label="",style="solid", color="burlywood", weight=3]; 1179[label="vuz91/Zero",fontsize=10,color="white",style="solid",shape="box"];972 -> 1179[label="",style="solid", color="burlywood", weight=9]; 1179 -> 1006[label="",style="solid", color="burlywood", weight=3]; 669 -> 556[label="",style="dashed", color="red", weight=0]; 669[label="primModNatS (primMinusNatS (Succ vuz44000) Zero) (Succ Zero)",fontsize=16,color="magenta"];669 -> 688[label="",style="dashed", color="magenta", weight=3]; 669 -> 689[label="",style="dashed", color="magenta", weight=3]; 670[label="Succ Zero",fontsize=16,color="green",shape="box"];671 -> 556[label="",style="dashed", color="red", weight=0]; 671[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];671 -> 690[label="",style="dashed", color="magenta", weight=3]; 671 -> 691[label="",style="dashed", color="magenta", weight=3]; 764 -> 666[label="",style="dashed", color="red", weight=0]; 764[label="primNegInt (Neg (Succ vuz20000))",fontsize=16,color="magenta"];764 -> 778[label="",style="dashed", color="magenta", weight=3]; 1005[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) vuz92)",fontsize=16,color="burlywood",shape="box"];1180[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1180[label="",style="solid", color="burlywood", weight=9]; 1180 -> 1007[label="",style="solid", color="burlywood", weight=3]; 1181[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1181[label="",style="solid", color="burlywood", weight=9]; 1181 -> 1008[label="",style="solid", color="burlywood", weight=3]; 1006[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero vuz92)",fontsize=16,color="burlywood",shape="box"];1182[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1182[label="",style="solid", color="burlywood", weight=9]; 1182 -> 1009[label="",style="solid", color="burlywood", weight=3]; 1183[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1183[label="",style="solid", color="burlywood", weight=9]; 1183 -> 1010[label="",style="solid", color="burlywood", weight=3]; 688 -> 491[label="",style="dashed", color="red", weight=0]; 688[label="primMinusNatS (Succ vuz44000) Zero",fontsize=16,color="magenta"];688 -> 705[label="",style="dashed", color="magenta", weight=3]; 689[label="Zero",fontsize=16,color="green",shape="box"];690 -> 493[label="",style="dashed", color="red", weight=0]; 690[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];691[label="Zero",fontsize=16,color="green",shape="box"];778[label="vuz20000",fontsize=16,color="green",shape="box"];1007[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) (Succ vuz920))",fontsize=16,color="black",shape="box"];1007 -> 1011[label="",style="solid", color="black", weight=3]; 1008[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) Zero)",fontsize=16,color="black",shape="box"];1008 -> 1012[label="",style="solid", color="black", weight=3]; 1009[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero (Succ vuz920))",fontsize=16,color="black",shape="box"];1009 -> 1013[label="",style="solid", color="black", weight=3]; 1010[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1010 -> 1014[label="",style="solid", color="black", weight=3]; 705[label="vuz44000",fontsize=16,color="green",shape="box"];1011 -> 972[label="",style="dashed", color="red", weight=0]; 1011[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz910 vuz920)",fontsize=16,color="magenta"];1011 -> 1015[label="",style="dashed", color="magenta", weight=3]; 1011 -> 1016[label="",style="dashed", color="magenta", weight=3]; 1012[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="black",shape="triangle"];1012 -> 1017[label="",style="solid", color="black", weight=3]; 1013[label="primModNatS0 (Succ vuz89) (Succ vuz90) False",fontsize=16,color="black",shape="box"];1013 -> 1018[label="",style="solid", color="black", weight=3]; 1014 -> 1012[label="",style="dashed", color="red", weight=0]; 1014[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="magenta"];1015[label="vuz910",fontsize=16,color="green",shape="box"];1016[label="vuz920",fontsize=16,color="green",shape="box"];1017 -> 556[label="",style="dashed", color="red", weight=0]; 1017[label="primModNatS (primMinusNatS (Succ vuz89) (Succ vuz90)) (Succ (Succ vuz90))",fontsize=16,color="magenta"];1017 -> 1019[label="",style="dashed", color="magenta", weight=3]; 1017 -> 1020[label="",style="dashed", color="magenta", weight=3]; 1018[label="Succ (Succ vuz89)",fontsize=16,color="green",shape="box"];1019 -> 881[label="",style="dashed", color="red", weight=0]; 1019[label="primMinusNatS (Succ vuz89) (Succ vuz90)",fontsize=16,color="magenta"];1019 -> 1021[label="",style="dashed", color="magenta", weight=3]; 1019 -> 1022[label="",style="dashed", color="magenta", weight=3]; 1020[label="Succ vuz90",fontsize=16,color="green",shape="box"];1021[label="Succ vuz90",fontsize=16,color="green",shape="box"];1022[label="Succ vuz89",fontsize=16,color="green",shape="box"];} ---------------------------------------- (732) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (733) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (734) YES