/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could not be shown: (0) HASKELL (1) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 15 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) QDPSizeChangeProof [EQUIVALENT, 0 ms] (15) YES (16) QDP (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] (18) YES (19) QDP (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] (21) YES (22) QDP (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] (24) YES (25) QDP (26) DependencyGraphProof [EQUIVALENT, 0 ms] (27) AND (28) QDP (29) TransformationProof [EQUIVALENT, 0 ms] (30) QDP (31) TransformationProof [EQUIVALENT, 0 ms] (32) QDP (33) QDPSizeChangeProof [EQUIVALENT, 0 ms] (34) YES (35) QDP (36) QDPSizeChangeProof [EQUIVALENT, 0 ms] (37) YES (38) QDP (39) QDPSizeChangeProof [EQUIVALENT, 0 ms] (40) YES (41) QDP (42) QDPSizeChangeProof [EQUIVALENT, 0 ms] (43) YES (44) QDP (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] (46) YES (47) QDP (48) QDPSizeChangeProof [EQUIVALENT, 0 ms] (49) YES (50) QDP (51) QDPSizeChangeProof [EQUIVALENT, 0 ms] (52) YES (53) QDP (54) TransformationProof [EQUIVALENT, 10 ms] (55) QDP (56) UsableRulesProof [EQUIVALENT, 0 ms] (57) QDP (58) QReductionProof [EQUIVALENT, 0 ms] (59) QDP (60) TransformationProof [EQUIVALENT, 0 ms] (61) QDP (62) TransformationProof [EQUIVALENT, 0 ms] (63) QDP (64) UsableRulesProof [EQUIVALENT, 0 ms] (65) QDP (66) QReductionProof [EQUIVALENT, 0 ms] (67) QDP (68) TransformationProof [EQUIVALENT, 0 ms] (69) QDP (70) UsableRulesProof [EQUIVALENT, 0 ms] (71) QDP (72) QReductionProof [EQUIVALENT, 3 ms] (73) QDP (74) InductionCalculusProof [EQUIVALENT, 0 ms] (75) QDP (76) TransformationProof [EQUIVALENT, 0 ms] (77) QDP (78) TransformationProof [EQUIVALENT, 0 ms] (79) QDP (80) DependencyGraphProof [EQUIVALENT, 0 ms] (81) QDP (82) TransformationProof [EQUIVALENT, 0 ms] (83) QDP (84) DependencyGraphProof [EQUIVALENT, 0 ms] (85) QDP (86) TransformationProof [EQUIVALENT, 0 ms] (87) QDP (88) DependencyGraphProof [EQUIVALENT, 0 ms] (89) QDP (90) TransformationProof [EQUIVALENT, 0 ms] (91) QDP (92) DependencyGraphProof [EQUIVALENT, 0 ms] (93) QDP (94) TransformationProof [EQUIVALENT, 1 ms] (95) QDP (96) DependencyGraphProof [EQUIVALENT, 0 ms] (97) AND (98) QDP (99) UsableRulesProof [EQUIVALENT, 0 ms] (100) QDP (101) QReductionProof [EQUIVALENT, 0 ms] (102) QDP (103) TransformationProof [EQUIVALENT, 0 ms] (104) QDP (105) DependencyGraphProof [EQUIVALENT, 0 ms] (106) QDP (107) TransformationProof [EQUIVALENT, 0 ms] (108) QDP (109) DependencyGraphProof [EQUIVALENT, 0 ms] (110) QDP (111) TransformationProof [EQUIVALENT, 0 ms] (112) QDP (113) TransformationProof [EQUIVALENT, 0 ms] (114) QDP (115) DependencyGraphProof [EQUIVALENT, 0 ms] (116) AND (117) QDP (118) UsableRulesProof [EQUIVALENT, 0 ms] (119) QDP (120) QReductionProof [EQUIVALENT, 0 ms] (121) QDP (122) TransformationProof [EQUIVALENT, 0 ms] (123) QDP (124) TransformationProof [EQUIVALENT, 0 ms] (125) QDP (126) TransformationProof [EQUIVALENT, 0 ms] (127) QDP (128) TransformationProof [EQUIVALENT, 0 ms] (129) QDP (130) TransformationProof [EQUIVALENT, 0 ms] (131) QDP (132) DependencyGraphProof [EQUIVALENT, 0 ms] (133) QDP (134) TransformationProof [EQUIVALENT, 0 ms] (135) QDP (136) DependencyGraphProof [EQUIVALENT, 0 ms] (137) QDP (138) TransformationProof [EQUIVALENT, 0 ms] (139) QDP (140) TransformationProof [EQUIVALENT, 0 ms] (141) QDP (142) TransformationProof [EQUIVALENT, 0 ms] (143) QDP (144) TransformationProof [EQUIVALENT, 0 ms] (145) QDP (146) DependencyGraphProof [EQUIVALENT, 0 ms] (147) QDP (148) TransformationProof [EQUIVALENT, 0 ms] (149) QDP (150) DependencyGraphProof [EQUIVALENT, 0 ms] (151) QDP (152) TransformationProof [EQUIVALENT, 0 ms] (153) QDP (154) QDPSizeChangeProof [EQUIVALENT, 0 ms] (155) YES (156) QDP (157) UsableRulesProof [EQUIVALENT, 0 ms] (158) QDP (159) TransformationProof [EQUIVALENT, 0 ms] (160) QDP (161) TransformationProof [EQUIVALENT, 0 ms] (162) QDP (163) TransformationProof [EQUIVALENT, 0 ms] (164) QDP (165) TransformationProof [EQUIVALENT, 0 ms] (166) QDP (167) TransformationProof [EQUIVALENT, 0 ms] (168) QDP (169) TransformationProof [EQUIVALENT, 0 ms] (170) QDP (171) TransformationProof [EQUIVALENT, 0 ms] (172) QDP (173) TransformationProof [EQUIVALENT, 0 ms] (174) QDP (175) TransformationProof [EQUIVALENT, 0 ms] (176) QDP (177) DependencyGraphProof [EQUIVALENT, 0 ms] (178) QDP (179) TransformationProof [EQUIVALENT, 0 ms] (180) QDP (181) TransformationProof [EQUIVALENT, 0 ms] (182) QDP (183) TransformationProof [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) TransformationProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (202) QDP (203) TransformationProof [EQUIVALENT, 0 ms] (204) QDP (205) DependencyGraphProof [EQUIVALENT, 0 ms] (206) AND (207) QDP (208) TransformationProof [EQUIVALENT, 0 ms] (209) QDP (210) TransformationProof [EQUIVALENT, 0 ms] (211) QDP (212) TransformationProof [EQUIVALENT, 0 ms] (213) QDP (214) TransformationProof [EQUIVALENT, 0 ms] (215) QDP (216) TransformationProof [EQUIVALENT, 0 ms] (217) QDP (218) TransformationProof [EQUIVALENT, 0 ms] (219) QDP (220) DependencyGraphProof [EQUIVALENT, 0 ms] (221) QDP (222) QDPOrderProof [EQUIVALENT, 794 ms] (223) QDP (224) DependencyGraphProof [EQUIVALENT, 0 ms] (225) TRUE (226) QDP (227) TransformationProof [EQUIVALENT, 0 ms] (228) QDP (229) DependencyGraphProof [EQUIVALENT, 0 ms] (230) AND (231) QDP (232) TransformationProof [EQUIVALENT, 0 ms] (233) QDP (234) TransformationProof [EQUIVALENT, 0 ms] (235) QDP (236) TransformationProof [EQUIVALENT, 0 ms] (237) QDP (238) TransformationProof [EQUIVALENT, 0 ms] (239) QDP (240) InductionCalculusProof [EQUIVALENT, 0 ms] (241) QDP (242) QDP (243) InductionCalculusProof [EQUIVALENT, 0 ms] (244) QDP (245) QDP (246) UsableRulesProof [EQUIVALENT, 0 ms] (247) QDP (248) QReductionProof [EQUIVALENT, 0 ms] (249) QDP (250) TransformationProof [EQUIVALENT, 0 ms] (251) QDP (252) DependencyGraphProof [EQUIVALENT, 0 ms] (253) QDP (254) TransformationProof [EQUIVALENT, 0 ms] (255) QDP (256) DependencyGraphProof [EQUIVALENT, 0 ms] (257) QDP (258) TransformationProof [EQUIVALENT, 0 ms] (259) QDP (260) TransformationProof [EQUIVALENT, 0 ms] (261) QDP (262) DependencyGraphProof [EQUIVALENT, 0 ms] (263) AND (264) QDP (265) UsableRulesProof [EQUIVALENT, 0 ms] (266) QDP (267) QReductionProof [EQUIVALENT, 0 ms] (268) QDP (269) TransformationProof [EQUIVALENT, 0 ms] (270) QDP (271) TransformationProof [EQUIVALENT, 0 ms] (272) QDP (273) TransformationProof [EQUIVALENT, 0 ms] (274) QDP (275) TransformationProof [EQUIVALENT, 0 ms] (276) QDP (277) TransformationProof [EQUIVALENT, 0 ms] (278) QDP (279) DependencyGraphProof [EQUIVALENT, 0 ms] (280) QDP (281) TransformationProof [EQUIVALENT, 0 ms] (282) QDP (283) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (294) QDP (295) TransformationProof [EQUIVALENT, 0 ms] (296) QDP (297) DependencyGraphProof [EQUIVALENT, 0 ms] (298) QDP (299) TransformationProof [EQUIVALENT, 0 ms] (300) QDP (301) QDPSizeChangeProof [EQUIVALENT, 1 ms] (302) YES (303) QDP (304) UsableRulesProof [EQUIVALENT, 0 ms] (305) QDP (306) TransformationProof [EQUIVALENT, 0 ms] (307) QDP (308) TransformationProof [EQUIVALENT, 0 ms] (309) QDP (310) TransformationProof [EQUIVALENT, 0 ms] (311) QDP (312) TransformationProof [EQUIVALENT, 0 ms] (313) QDP (314) TransformationProof [EQUIVALENT, 0 ms] (315) QDP (316) TransformationProof [EQUIVALENT, 0 ms] (317) QDP (318) TransformationProof [EQUIVALENT, 0 ms] (319) QDP (320) TransformationProof [EQUIVALENT, 0 ms] (321) QDP (322) TransformationProof [EQUIVALENT, 0 ms] (323) QDP (324) DependencyGraphProof [EQUIVALENT, 0 ms] (325) QDP (326) TransformationProof [EQUIVALENT, 0 ms] (327) QDP (328) TransformationProof [EQUIVALENT, 0 ms] (329) QDP (330) TransformationProof [EQUIVALENT, 0 ms] (331) QDP (332) TransformationProof [EQUIVALENT, 0 ms] (333) QDP (334) TransformationProof [EQUIVALENT, 0 ms] (335) QDP (336) TransformationProof [EQUIVALENT, 0 ms] (337) QDP (338) TransformationProof [EQUIVALENT, 0 ms] (339) QDP (340) TransformationProof [EQUIVALENT, 0 ms] (341) QDP (342) TransformationProof [EQUIVALENT, 0 ms] (343) QDP (344) TransformationProof [EQUIVALENT, 0 ms] (345) QDP (346) TransformationProof [EQUIVALENT, 0 ms] (347) QDP (348) DependencyGraphProof [EQUIVALENT, 0 ms] (349) QDP (350) TransformationProof [EQUIVALENT, 0 ms] (351) QDP (352) DependencyGraphProof [EQUIVALENT, 0 ms] (353) AND (354) QDP (355) TransformationProof [EQUIVALENT, 0 ms] (356) QDP (357) TransformationProof [EQUIVALENT, 0 ms] (358) QDP (359) TransformationProof [EQUIVALENT, 0 ms] (360) QDP (361) TransformationProof [EQUIVALENT, 0 ms] (362) QDP (363) TransformationProof [EQUIVALENT, 0 ms] (364) QDP (365) TransformationProof [EQUIVALENT, 0 ms] (366) QDP (367) DependencyGraphProof [EQUIVALENT, 0 ms] (368) QDP (369) QDPOrderProof [EQUIVALENT, 489 ms] (370) QDP (371) DependencyGraphProof [EQUIVALENT, 0 ms] (372) TRUE (373) QDP (374) TransformationProof [EQUIVALENT, 0 ms] (375) QDP (376) DependencyGraphProof [EQUIVALENT, 0 ms] (377) AND (378) QDP (379) TransformationProof [EQUIVALENT, 0 ms] (380) QDP (381) TransformationProof [EQUIVALENT, 0 ms] (382) QDP (383) TransformationProof [EQUIVALENT, 0 ms] (384) QDP (385) TransformationProof [EQUIVALENT, 0 ms] (386) QDP (387) QReductionProof [EQUIVALENT, 0 ms] (388) QDP (389) InductionCalculusProof [EQUIVALENT, 0 ms] (390) QDP (391) QDP (392) QReductionProof [EQUIVALENT, 0 ms] (393) QDP (394) InductionCalculusProof [EQUIVALENT, 0 ms] (395) QDP (396) QDP (397) UsableRulesProof [EQUIVALENT, 0 ms] (398) QDP (399) QReductionProof [EQUIVALENT, 0 ms] (400) QDP (401) TransformationProof [EQUIVALENT, 0 ms] (402) QDP (403) DependencyGraphProof [EQUIVALENT, 0 ms] (404) QDP (405) TransformationProof [EQUIVALENT, 0 ms] (406) QDP (407) DependencyGraphProof [EQUIVALENT, 0 ms] (408) QDP (409) TransformationProof [EQUIVALENT, 0 ms] (410) QDP (411) TransformationProof [EQUIVALENT, 0 ms] (412) QDP (413) DependencyGraphProof [EQUIVALENT, 0 ms] (414) QDP (415) TransformationProof [EQUIVALENT, 0 ms] (416) QDP (417) TransformationProof [EQUIVALENT, 0 ms] (418) QDP (419) TransformationProof [EQUIVALENT, 0 ms] (420) QDP (421) DependencyGraphProof [EQUIVALENT, 0 ms] (422) QDP (423) TransformationProof [EQUIVALENT, 0 ms] (424) QDP (425) TransformationProof [EQUIVALENT, 0 ms] (426) QDP (427) TransformationProof [EQUIVALENT, 0 ms] (428) QDP (429) TransformationProof [EQUIVALENT, 0 ms] (430) QDP (431) DependencyGraphProof [EQUIVALENT, 0 ms] (432) QDP (433) TransformationProof [EQUIVALENT, 0 ms] (434) QDP (435) TransformationProof [EQUIVALENT, 0 ms] (436) QDP (437) TransformationProof [EQUIVALENT, 0 ms] (438) QDP (439) TransformationProof [EQUIVALENT, 0 ms] (440) QDP (441) TransformationProof [EQUIVALENT, 0 ms] (442) QDP (443) TransformationProof [EQUIVALENT, 0 ms] (444) QDP (445) DependencyGraphProof [EQUIVALENT, 0 ms] (446) QDP (447) TransformationProof [EQUIVALENT, 0 ms] (448) QDP (449) TransformationProof [EQUIVALENT, 0 ms] (450) QDP (451) DependencyGraphProof [EQUIVALENT, 0 ms] (452) AND (453) QDP (454) UsableRulesProof [EQUIVALENT, 0 ms] (455) QDP (456) QReductionProof [EQUIVALENT, 0 ms] (457) QDP (458) TransformationProof [EQUIVALENT, 0 ms] (459) QDP (460) TransformationProof [EQUIVALENT, 0 ms] (461) QDP (462) TransformationProof [EQUIVALENT, 1 ms] (463) QDP (464) DependencyGraphProof [EQUIVALENT, 0 ms] (465) QDP (466) TransformationProof [EQUIVALENT, 0 ms] (467) QDP (468) DependencyGraphProof [EQUIVALENT, 0 ms] (469) QDP (470) TransformationProof [EQUIVALENT, 0 ms] (471) QDP (472) TransformationProof [EQUIVALENT, 0 ms] (473) QDP (474) TransformationProof [EQUIVALENT, 0 ms] (475) QDP (476) TransformationProof [EQUIVALENT, 0 ms] (477) QDP (478) DependencyGraphProof [EQUIVALENT, 0 ms] (479) QDP (480) TransformationProof [EQUIVALENT, 0 ms] (481) QDP (482) DependencyGraphProof [EQUIVALENT, 0 ms] (483) QDP (484) TransformationProof [EQUIVALENT, 0 ms] (485) QDP (486) QDPSizeChangeProof [EQUIVALENT, 0 ms] (487) YES (488) QDP (489) UsableRulesProof [EQUIVALENT, 0 ms] (490) QDP (491) QReductionProof [EQUIVALENT, 0 ms] (492) QDP (493) TransformationProof [EQUIVALENT, 0 ms] (494) QDP (495) TransformationProof [EQUIVALENT, 0 ms] (496) QDP (497) TransformationProof [EQUIVALENT, 0 ms] (498) QDP (499) TransformationProof [EQUIVALENT, 0 ms] (500) QDP (501) TransformationProof [EQUIVALENT, 0 ms] (502) QDP (503) DependencyGraphProof [EQUIVALENT, 0 ms] (504) QDP (505) TransformationProof [EQUIVALENT, 0 ms] (506) QDP (507) TransformationProof [EQUIVALENT, 0 ms] (508) QDP (509) TransformationProof [EQUIVALENT, 0 ms] (510) QDP (511) TransformationProof [EQUIVALENT, 0 ms] (512) QDP (513) DependencyGraphProof [EQUIVALENT, 0 ms] (514) QDP (515) TransformationProof [EQUIVALENT, 0 ms] (516) QDP (517) DependencyGraphProof [EQUIVALENT, 0 ms] (518) QDP (519) TransformationProof [EQUIVALENT, 0 ms] (520) QDP (521) TransformationProof [EQUIVALENT, 0 ms] (522) QDP (523) DependencyGraphProof [EQUIVALENT, 0 ms] (524) QDP (525) TransformationProof [EQUIVALENT, 0 ms] (526) QDP (527) QDPSizeChangeProof [EQUIVALENT, 0 ms] (528) YES (529) QDP (530) UsableRulesProof [EQUIVALENT, 0 ms] (531) QDP (532) TransformationProof [EQUIVALENT, 0 ms] (533) QDP (534) TransformationProof [EQUIVALENT, 0 ms] (535) QDP (536) TransformationProof [EQUIVALENT, 0 ms] (537) QDP (538) TransformationProof [EQUIVALENT, 0 ms] (539) QDP (540) TransformationProof [EQUIVALENT, 0 ms] (541) QDP (542) TransformationProof [EQUIVALENT, 0 ms] (543) QDP (544) TransformationProof [EQUIVALENT, 0 ms] (545) QDP (546) TransformationProof [EQUIVALENT, 0 ms] (547) QDP (548) DependencyGraphProof [EQUIVALENT, 0 ms] (549) QDP (550) TransformationProof [EQUIVALENT, 0 ms] (551) QDP (552) TransformationProof [EQUIVALENT, 0 ms] (553) QDP (554) TransformationProof [EQUIVALENT, 0 ms] (555) QDP (556) TransformationProof [EQUIVALENT, 0 ms] (557) QDP (558) TransformationProof [EQUIVALENT, 0 ms] (559) QDP (560) TransformationProof [EQUIVALENT, 0 ms] (561) QDP (562) TransformationProof [EQUIVALENT, 0 ms] (563) QDP (564) DependencyGraphProof [EQUIVALENT, 0 ms] (565) QDP (566) TransformationProof [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) TransformationProof [EQUIVALENT, 0 ms] (575) QDP (576) TransformationProof [EQUIVALENT, 0 ms] (577) QDP (578) TransformationProof [EQUIVALENT, 0 ms] (579) QDP (580) TransformationProof [EQUIVALENT, 0 ms] (581) QDP (582) DependencyGraphProof [EQUIVALENT, 0 ms] (583) QDP (584) TransformationProof [EQUIVALENT, 0 ms] (585) QDP (586) DependencyGraphProof [EQUIVALENT, 0 ms] (587) QDP (588) TransformationProof [EQUIVALENT, 0 ms] (589) QDP (590) DependencyGraphProof [EQUIVALENT, 0 ms] (591) AND (592) QDP (593) UsableRulesProof [EQUIVALENT, 0 ms] (594) QDP (595) TransformationProof [EQUIVALENT, 0 ms] (596) QDP (597) TransformationProof [EQUIVALENT, 0 ms] (598) QDP (599) TransformationProof [EQUIVALENT, 0 ms] (600) QDP (601) TransformationProof [EQUIVALENT, 0 ms] (602) QDP (603) DependencyGraphProof [EQUIVALENT, 0 ms] (604) QDP (605) TransformationProof [EQUIVALENT, 0 ms] (606) QDP (607) DependencyGraphProof [EQUIVALENT, 0 ms] (608) QDP (609) InductionCalculusProof [EQUIVALENT, 0 ms] (610) QDP (611) QDP (612) UsableRulesProof [EQUIVALENT, 0 ms] (613) QDP (614) TransformationProof [EQUIVALENT, 0 ms] (615) QDP (616) UsableRulesProof [EQUIVALENT, 0 ms] (617) QDP (618) InductionCalculusProof [EQUIVALENT, 0 ms] (619) QDP (620) QDP (621) TransformationProof [EQUIVALENT, 0 ms] (622) QDP (623) TransformationProof [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) TransformationProof [EQUIVALENT, 0 ms] (632) QDP (633) TransformationProof [EQUIVALENT, 0 ms] (634) QDP (635) TransformationProof [EQUIVALENT, 0 ms] (636) QDP (637) TransformationProof [EQUIVALENT, 0 ms] (638) QDP (639) TransformationProof [EQUIVALENT, 0 ms] (640) QDP (641) TransformationProof [EQUIVALENT, 0 ms] (642) QDP (643) DependencyGraphProof [EQUIVALENT, 0 ms] (644) QDP (645) TransformationProof [EQUIVALENT, 0 ms] (646) QDP (647) DependencyGraphProof [EQUIVALENT, 0 ms] (648) QDP (649) TransformationProof [EQUIVALENT, 0 ms] (650) QDP (651) TransformationProof [EQUIVALENT, 0 ms] (652) QDP (653) TransformationProof [EQUIVALENT, 0 ms] (654) QDP (655) TransformationProof [EQUIVALENT, 0 ms] (656) QDP (657) TransformationProof [EQUIVALENT, 0 ms] (658) QDP (659) TransformationProof [EQUIVALENT, 0 ms] (660) QDP (661) DependencyGraphProof [EQUIVALENT, 0 ms] (662) AND (663) QDP (664) UsableRulesProof [EQUIVALENT, 0 ms] (665) QDP (666) InductionCalculusProof [EQUIVALENT, 0 ms] (667) QDP (668) QDP (669) UsableRulesProof [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) InductionCalculusProof [EQUIVALENT, 0 ms] (680) QDP (681) QDP (682) InductionCalculusProof [EQUIVALENT, 0 ms] (683) QDP (684) QDP (685) QDPSizeChangeProof [EQUIVALENT, 0 ms] (686) YES (687) QDP (688) DependencyGraphProof [EQUIVALENT, 0 ms] (689) AND (690) QDP (691) MRRProof [EQUIVALENT, 0 ms] (692) QDP (693) PisEmptyProof [EQUIVALENT, 0 ms] (694) YES (695) QDP (696) QDPOrderProof [EQUIVALENT, 0 ms] (697) QDP (698) DependencyGraphProof [EQUIVALENT, 0 ms] (699) QDP (700) QDPSizeChangeProof [EQUIVALENT, 0 ms] (701) YES (702) QDP (703) QDPSizeChangeProof [EQUIVALENT, 0 ms] (704) YES (705) QDP (706) QDPSizeChangeProof [EQUIVALENT, 0 ms] (707) YES (708) QDP (709) QDPSizeChangeProof [EQUIVALENT, 0 ms] (710) YES (711) QDP (712) QDPSizeChangeProof [EQUIVALENT, 0 ms] (713) YES (714) QDP (715) TransformationProof [EQUIVALENT, 0 ms] (716) QDP (717) UsableRulesProof [EQUIVALENT, 0 ms] (718) QDP (719) QReductionProof [EQUIVALENT, 0 ms] (720) QDP (721) TransformationProof [EQUIVALENT, 0 ms] (722) QDP (723) TransformationProof [EQUIVALENT, 0 ms] (724) QDP (725) UsableRulesProof [EQUIVALENT, 0 ms] (726) QDP (727) QReductionProof [EQUIVALENT, 0 ms] (728) QDP (729) InductionCalculusProof [EQUIVALENT, 0 ms] (730) QDP (731) TransformationProof [EQUIVALENT, 0 ms] (732) QDP (733) TransformationProof [EQUIVALENT, 0 ms] (734) QDP (735) UsableRulesProof [EQUIVALENT, 0 ms] (736) QDP (737) TransformationProof [EQUIVALENT, 0 ms] (738) QDP (739) UsableRulesProof [EQUIVALENT, 0 ms] (740) QDP (741) TransformationProof [EQUIVALENT, 0 ms] (742) QDP (743) DependencyGraphProof [EQUIVALENT, 0 ms] (744) QDP (745) UsableRulesProof [EQUIVALENT, 0 ms] (746) QDP (747) TransformationProof [EQUIVALENT, 0 ms] (748) QDP (749) UsableRulesProof [EQUIVALENT, 0 ms] (750) QDP (751) TransformationProof [EQUIVALENT, 0 ms] (752) QDP (753) DependencyGraphProof [EQUIVALENT, 0 ms] (754) QDP (755) UsableRulesProof [EQUIVALENT, 0 ms] (756) QDP (757) TransformationProof [EQUIVALENT, 0 ms] (758) QDP (759) UsableRulesProof [EQUIVALENT, 0 ms] (760) QDP (761) TransformationProof [EQUIVALENT, 0 ms] (762) QDP (763) DependencyGraphProof [EQUIVALENT, 0 ms] (764) QDP (765) UsableRulesProof [EQUIVALENT, 0 ms] (766) QDP (767) TransformationProof [EQUIVALENT, 0 ms] (768) QDP (769) DependencyGraphProof [EQUIVALENT, 0 ms] (770) QDP (771) UsableRulesProof [EQUIVALENT, 0 ms] (772) QDP (773) QReductionProof [EQUIVALENT, 0 ms] (774) QDP (775) TransformationProof [EQUIVALENT, 0 ms] (776) QDP (777) DependencyGraphProof [EQUIVALENT, 0 ms] (778) QDP (779) TransformationProof [EQUIVALENT, 0 ms] (780) QDP (781) TransformationProof [EQUIVALENT, 0 ms] (782) QDP (783) TransformationProof [EQUIVALENT, 0 ms] (784) QDP (785) TransformationProof [EQUIVALENT, 0 ms] (786) QDP (787) TransformationProof [EQUIVALENT, 0 ms] (788) QDP (789) TransformationProof [EQUIVALENT, 0 ms] (790) QDP (791) TransformationProof [EQUIVALENT, 0 ms] (792) QDP (793) DependencyGraphProof [EQUIVALENT, 0 ms] (794) QDP (795) TransformationProof [EQUIVALENT, 0 ms] (796) QDP (797) TransformationProof [EQUIVALENT, 0 ms] (798) QDP (799) DependencyGraphProof [EQUIVALENT, 0 ms] (800) QDP (801) TransformationProof [EQUIVALENT, 0 ms] (802) QDP (803) TransformationProof [EQUIVALENT, 0 ms] (804) QDP (805) TransformationProof [EQUIVALENT, 0 ms] (806) QDP (807) TransformationProof [EQUIVALENT, 0 ms] (808) QDP (809) TransformationProof [EQUIVALENT, 0 ms] (810) QDP (811) TransformationProof [EQUIVALENT, 0 ms] (812) QDP (813) TransformationProof [EQUIVALENT, 0 ms] (814) QDP (815) DependencyGraphProof [EQUIVALENT, 0 ms] (816) QDP (817) TransformationProof [EQUIVALENT, 0 ms] (818) QDP (819) TransformationProof [EQUIVALENT, 0 ms] (820) QDP (821) DependencyGraphProof [EQUIVALENT, 0 ms] (822) QDP (823) TransformationProof [EQUIVALENT, 0 ms] (824) QDP (825) TransformationProof [EQUIVALENT, 0 ms] (826) QDP (827) TransformationProof [EQUIVALENT, 0 ms] (828) QDP (829) TransformationProof [EQUIVALENT, 0 ms] (830) QDP (831) TransformationProof [EQUIVALENT, 0 ms] (832) QDP (833) TransformationProof [EQUIVALENT, 0 ms] (834) QDP (835) TransformationProof [EQUIVALENT, 0 ms] (836) QDP (837) DependencyGraphProof [EQUIVALENT, 0 ms] (838) QDP (839) TransformationProof [EQUIVALENT, 0 ms] (840) QDP (841) TransformationProof [EQUIVALENT, 0 ms] (842) QDP (843) DependencyGraphProof [EQUIVALENT, 0 ms] (844) QDP (845) TransformationProof [EQUIVALENT, 0 ms] (846) QDP (847) TransformationProof [EQUIVALENT, 0 ms] (848) QDP (849) TransformationProof [EQUIVALENT, 0 ms] (850) QDP (851) TransformationProof [EQUIVALENT, 0 ms] (852) QDP (853) TransformationProof [EQUIVALENT, 0 ms] (854) QDP (855) TransformationProof [EQUIVALENT, 0 ms] (856) QDP (857) TransformationProof [EQUIVALENT, 0 ms] (858) QDP (859) DependencyGraphProof [EQUIVALENT, 0 ms] (860) QDP (861) TransformationProof [EQUIVALENT, 0 ms] (862) QDP (863) TransformationProof [EQUIVALENT, 0 ms] (864) QDP (865) TransformationProof [EQUIVALENT, 0 ms] (866) QDP (867) TransformationProof [EQUIVALENT, 0 ms] (868) QDP (869) TransformationProof [EQUIVALENT, 0 ms] (870) QDP (871) TransformationProof [EQUIVALENT, 0 ms] (872) QDP (873) TransformationProof [EQUIVALENT, 0 ms] (874) QDP (875) TransformationProof [EQUIVALENT, 0 ms] (876) QDP (877) TransformationProof [EQUIVALENT, 0 ms] (878) QDP (879) TransformationProof [EQUIVALENT, 0 ms] (880) QDP (881) TransformationProof [EQUIVALENT, 0 ms] (882) QDP (883) TransformationProof [EQUIVALENT, 0 ms] (884) QDP (885) DependencyGraphProof [EQUIVALENT, 0 ms] (886) QDP (887) TransformationProof [EQUIVALENT, 0 ms] (888) QDP (889) TransformationProof [EQUIVALENT, 0 ms] (890) QDP (891) TransformationProof [EQUIVALENT, 0 ms] (892) QDP (893) TransformationProof [EQUIVALENT, 0 ms] (894) QDP (895) TransformationProof [EQUIVALENT, 0 ms] (896) QDP (897) TransformationProof [EQUIVALENT, 0 ms] (898) QDP (899) TransformationProof [EQUIVALENT, 0 ms] (900) QDP (901) TransformationProof [EQUIVALENT, 0 ms] (902) QDP (903) TransformationProof [EQUIVALENT, 0 ms] (904) QDP (905) DependencyGraphProof [EQUIVALENT, 0 ms] (906) QDP (907) TransformationProof [EQUIVALENT, 0 ms] (908) QDP (909) TransformationProof [EQUIVALENT, 0 ms] (910) QDP (911) TransformationProof [EQUIVALENT, 0 ms] (912) QDP (913) TransformationProof [EQUIVALENT, 0 ms] (914) QDP (915) TransformationProof [EQUIVALENT, 0 ms] (916) QDP (917) TransformationProof [EQUIVALENT, 0 ms] (918) QDP (919) TransformationProof [EQUIVALENT, 0 ms] (920) QDP (921) TransformationProof [EQUIVALENT, 0 ms] (922) QDP (923) TransformationProof [EQUIVALENT, 0 ms] (924) QDP (925) TransformationProof [EQUIVALENT, 0 ms] (926) QDP (927) TransformationProof [EQUIVALENT, 0 ms] (928) QDP (929) TransformationProof [EQUIVALENT, 0 ms] (930) QDP (931) DependencyGraphProof [EQUIVALENT, 0 ms] (932) QDP (933) TransformationProof [EQUIVALENT, 0 ms] (934) QDP (935) TransformationProof [EQUIVALENT, 0 ms] (936) QDP (937) TransformationProof [EQUIVALENT, 0 ms] (938) QDP (939) TransformationProof [EQUIVALENT, 0 ms] (940) QDP (941) TransformationProof [EQUIVALENT, 0 ms] (942) QDP (943) TransformationProof [EQUIVALENT, 0 ms] (944) QDP (945) TransformationProof [EQUIVALENT, 0 ms] (946) QDP (947) TransformationProof [EQUIVALENT, 0 ms] (948) QDP (949) TransformationProof [EQUIVALENT, 0 ms] (950) QDP (951) DependencyGraphProof [EQUIVALENT, 0 ms] (952) QDP (953) TransformationProof [EQUIVALENT, 0 ms] (954) QDP (955) TransformationProof [EQUIVALENT, 0 ms] (956) QDP (957) TransformationProof [EQUIVALENT, 0 ms] (958) QDP (959) TransformationProof [EQUIVALENT, 0 ms] (960) QDP (961) TransformationProof [EQUIVALENT, 0 ms] (962) QDP (963) TransformationProof [EQUIVALENT, 0 ms] (964) QDP (965) TransformationProof [EQUIVALENT, 0 ms] (966) QDP (967) TransformationProof [EQUIVALENT, 0 ms] (968) QDP (969) TransformationProof [EQUIVALENT, 0 ms] (970) QDP (971) TransformationProof [EQUIVALENT, 0 ms] (972) QDP (973) TransformationProof [EQUIVALENT, 0 ms] (974) QDP (975) TransformationProof [EQUIVALENT, 0 ms] (976) QDP (977) DependencyGraphProof [EQUIVALENT, 0 ms] (978) QDP (979) TransformationProof [EQUIVALENT, 0 ms] (980) QDP (981) TransformationProof [EQUIVALENT, 0 ms] (982) QDP (983) TransformationProof [EQUIVALENT, 0 ms] (984) QDP (985) TransformationProof [EQUIVALENT, 0 ms] (986) QDP (987) TransformationProof [EQUIVALENT, 0 ms] (988) QDP (989) TransformationProof [EQUIVALENT, 0 ms] (990) QDP (991) TransformationProof [EQUIVALENT, 0 ms] (992) QDP (993) TransformationProof [EQUIVALENT, 0 ms] (994) QDP (995) TransformationProof [EQUIVALENT, 0 ms] (996) QDP (997) DependencyGraphProof [EQUIVALENT, 0 ms] (998) QDP (999) TransformationProof [EQUIVALENT, 0 ms] (1000) QDP (1001) TransformationProof [EQUIVALENT, 0 ms] (1002) QDP (1003) TransformationProof [EQUIVALENT, 0 ms] (1004) QDP (1005) TransformationProof [EQUIVALENT, 0 ms] (1006) QDP (1007) TransformationProof [EQUIVALENT, 0 ms] (1008) QDP (1009) TransformationProof [EQUIVALENT, 0 ms] (1010) QDP (1011) TransformationProof [EQUIVALENT, 0 ms] (1012) QDP (1013) TransformationProof [EQUIVALENT, 0 ms] (1014) QDP (1015) TransformationProof [EQUIVALENT, 0 ms] (1016) QDP (1017) TransformationProof [EQUIVALENT, 0 ms] (1018) QDP (1019) TransformationProof [EQUIVALENT, 0 ms] (1020) QDP (1021) TransformationProof [EQUIVALENT, 0 ms] (1022) QDP (1023) DependencyGraphProof [EQUIVALENT, 0 ms] (1024) QDP (1025) TransformationProof [EQUIVALENT, 0 ms] (1026) QDP (1027) TransformationProof [EQUIVALENT, 0 ms] (1028) QDP (1029) TransformationProof [EQUIVALENT, 0 ms] (1030) QDP (1031) TransformationProof [EQUIVALENT, 0 ms] (1032) QDP (1033) TransformationProof [EQUIVALENT, 0 ms] (1034) QDP (1035) TransformationProof [EQUIVALENT, 0 ms] (1036) QDP (1037) TransformationProof [EQUIVALENT, 0 ms] (1038) QDP (1039) TransformationProof [EQUIVALENT, 0 ms] (1040) QDP (1041) TransformationProof [EQUIVALENT, 0 ms] (1042) QDP (1043) DependencyGraphProof [EQUIVALENT, 0 ms] (1044) QDP (1045) TransformationProof [EQUIVALENT, 0 ms] (1046) QDP (1047) TransformationProof [EQUIVALENT, 0 ms] (1048) QDP (1049) TransformationProof [EQUIVALENT, 0 ms] (1050) QDP (1051) TransformationProof [EQUIVALENT, 0 ms] (1052) QDP (1053) TransformationProof [EQUIVALENT, 0 ms] (1054) QDP (1055) TransformationProof [EQUIVALENT, 0 ms] (1056) QDP (1057) TransformationProof [EQUIVALENT, 0 ms] (1058) QDP (1059) TransformationProof [EQUIVALENT, 0 ms] (1060) QDP (1061) TransformationProof [EQUIVALENT, 0 ms] (1062) QDP (1063) TransformationProof [EQUIVALENT, 0 ms] (1064) QDP (1065) TransformationProof [EQUIVALENT, 0 ms] (1066) QDP (1067) TransformationProof [EQUIVALENT, 0 ms] (1068) QDP (1069) TransformationProof [EQUIVALENT, 0 ms] (1070) QDP (1071) TransformationProof [EQUIVALENT, 0 ms] (1072) QDP (1073) DependencyGraphProof [EQUIVALENT, 0 ms] (1074) QDP (1075) TransformationProof [EQUIVALENT, 0 ms] (1076) QDP (1077) TransformationProof [EQUIVALENT, 0 ms] (1078) QDP (1079) TransformationProof [EQUIVALENT, 0 ms] (1080) QDP (1081) TransformationProof [EQUIVALENT, 0 ms] (1082) QDP (1083) TransformationProof [EQUIVALENT, 0 ms] (1084) QDP (1085) TransformationProof [EQUIVALENT, 0 ms] (1086) QDP (1087) TransformationProof [EQUIVALENT, 0 ms] (1088) QDP (1089) TransformationProof [EQUIVALENT, 0 ms] (1090) QDP (1091) TransformationProof [EQUIVALENT, 0 ms] (1092) QDP (1093) TransformationProof [EQUIVALENT, 0 ms] (1094) QDP (1095) TransformationProof [EQUIVALENT, 0 ms] (1096) QDP (1097) TransformationProof [EQUIVALENT, 0 ms] (1098) QDP (1099) TransformationProof [EQUIVALENT, 0 ms] (1100) QDP (1101) TransformationProof [EQUIVALENT, 0 ms] (1102) QDP (1103) DependencyGraphProof [EQUIVALENT, 0 ms] (1104) QDP (1105) TransformationProof [EQUIVALENT, 0 ms] (1106) QDP (1107) TransformationProof [EQUIVALENT, 0 ms] (1108) QDP (1109) TransformationProof [EQUIVALENT, 0 ms] (1110) QDP (1111) TransformationProof [EQUIVALENT, 0 ms] (1112) QDP (1113) TransformationProof [EQUIVALENT, 0 ms] (1114) QDP (1115) TransformationProof [EQUIVALENT, 0 ms] (1116) QDP (1117) TransformationProof [EQUIVALENT, 0 ms] (1118) QDP (1119) TransformationProof [EQUIVALENT, 0 ms] (1120) QDP (1121) TransformationProof [EQUIVALENT, 0 ms] (1122) QDP (1123) TransformationProof [EQUIVALENT, 0 ms] (1124) QDP (1125) TransformationProof [EQUIVALENT, 0 ms] (1126) QDP (1127) TransformationProof [EQUIVALENT, 0 ms] (1128) QDP (1129) TransformationProof [EQUIVALENT, 0 ms] (1130) QDP (1131) TransformationProof [EQUIVALENT, 0 ms] (1132) QDP (1133) DependencyGraphProof [EQUIVALENT, 0 ms] (1134) QDP (1135) TransformationProof [EQUIVALENT, 0 ms] (1136) QDP (1137) TransformationProof [EQUIVALENT, 0 ms] (1138) QDP (1139) TransformationProof [EQUIVALENT, 0 ms] (1140) QDP (1141) TransformationProof [EQUIVALENT, 0 ms] (1142) QDP (1143) TransformationProof [EQUIVALENT, 0 ms] (1144) QDP (1145) TransformationProof [EQUIVALENT, 0 ms] (1146) QDP (1147) TransformationProof [EQUIVALENT, 0 ms] (1148) QDP (1149) TransformationProof [EQUIVALENT, 0 ms] (1150) QDP (1151) TransformationProof [EQUIVALENT, 0 ms] (1152) QDP (1153) TransformationProof [EQUIVALENT, 0 ms] (1154) QDP (1155) TransformationProof [EQUIVALENT, 0 ms] (1156) QDP (1157) TransformationProof [EQUIVALENT, 0 ms] (1158) QDP (1159) TransformationProof [EQUIVALENT, 0 ms] (1160) QDP (1161) TransformationProof [EQUIVALENT, 0 ms] (1162) QDP (1163) DependencyGraphProof [EQUIVALENT, 0 ms] (1164) QDP (1165) TransformationProof [EQUIVALENT, 0 ms] (1166) QDP (1167) TransformationProof [EQUIVALENT, 0 ms] (1168) QDP (1169) TransformationProof [EQUIVALENT, 0 ms] (1170) QDP (1171) TransformationProof [EQUIVALENT, 0 ms] (1172) QDP (1173) TransformationProof [EQUIVALENT, 0 ms] (1174) QDP (1175) TransformationProof [EQUIVALENT, 0 ms] (1176) QDP (1177) TransformationProof [EQUIVALENT, 0 ms] (1178) QDP (1179) TransformationProof [EQUIVALENT, 0 ms] (1180) QDP (1181) TransformationProof [EQUIVALENT, 0 ms] (1182) QDP (1183) TransformationProof [EQUIVALENT, 0 ms] (1184) QDP (1185) TransformationProof [EQUIVALENT, 0 ms] (1186) QDP (1187) TransformationProof [EQUIVALENT, 0 ms] (1188) QDP (1189) TransformationProof [EQUIVALENT, 0 ms] (1190) QDP (1191) TransformationProof [EQUIVALENT, 0 ms] (1192) QDP (1193) DependencyGraphProof [EQUIVALENT, 0 ms] (1194) QDP (1195) TransformationProof [EQUIVALENT, 0 ms] (1196) QDP (1197) TransformationProof [EQUIVALENT, 0 ms] (1198) QDP (1199) TransformationProof [EQUIVALENT, 0 ms] (1200) QDP (1201) TransformationProof [EQUIVALENT, 0 ms] (1202) QDP (1203) TransformationProof [EQUIVALENT, 0 ms] (1204) QDP (1205) TransformationProof [EQUIVALENT, 0 ms] (1206) QDP (1207) TransformationProof [EQUIVALENT, 0 ms] (1208) QDP (1209) TransformationProof [EQUIVALENT, 0 ms] (1210) QDP (1211) TransformationProof [EQUIVALENT, 0 ms] (1212) QDP (1213) TransformationProof [EQUIVALENT, 0 ms] (1214) QDP (1215) TransformationProof [EQUIVALENT, 0 ms] (1216) QDP (1217) TransformationProof [EQUIVALENT, 0 ms] (1218) QDP (1219) TransformationProof [EQUIVALENT, 0 ms] (1220) QDP (1221) TransformationProof [EQUIVALENT, 0 ms] (1222) QDP (1223) DependencyGraphProof [EQUIVALENT, 0 ms] (1224) QDP (1225) TransformationProof [EQUIVALENT, 0 ms] (1226) QDP (1227) TransformationProof [EQUIVALENT, 0 ms] (1228) QDP (1229) TransformationProof [EQUIVALENT, 0 ms] (1230) QDP (1231) TransformationProof [EQUIVALENT, 1 ms] (1232) QDP (1233) TransformationProof [EQUIVALENT, 0 ms] (1234) QDP (1235) TransformationProof [EQUIVALENT, 0 ms] (1236) QDP (1237) TransformationProof [EQUIVALENT, 0 ms] (1238) QDP (1239) TransformationProof [EQUIVALENT, 0 ms] (1240) QDP (1241) TransformationProof [EQUIVALENT, 0 ms] (1242) QDP (1243) TransformationProof [EQUIVALENT, 0 ms] (1244) QDP (1245) TransformationProof [EQUIVALENT, 0 ms] (1246) QDP (1247) TransformationProof [EQUIVALENT, 0 ms] (1248) QDP (1249) TransformationProof [EQUIVALENT, 0 ms] (1250) QDP (1251) TransformationProof [EQUIVALENT, 0 ms] (1252) QDP (1253) DependencyGraphProof [EQUIVALENT, 0 ms] (1254) QDP (1255) TransformationProof [EQUIVALENT, 0 ms] (1256) QDP (1257) TransformationProof [EQUIVALENT, 0 ms] (1258) QDP (1259) TransformationProof [EQUIVALENT, 0 ms] (1260) QDP (1261) TransformationProof [EQUIVALENT, 0 ms] (1262) QDP (1263) TransformationProof [EQUIVALENT, 0 ms] (1264) QDP (1265) TransformationProof [EQUIVALENT, 0 ms] (1266) QDP (1267) TransformationProof [EQUIVALENT, 0 ms] (1268) QDP (1269) TransformationProof [EQUIVALENT, 0 ms] (1270) QDP (1271) TransformationProof [EQUIVALENT, 0 ms] (1272) QDP (1273) TransformationProof [EQUIVALENT, 0 ms] (1274) QDP (1275) TransformationProof [EQUIVALENT, 0 ms] (1276) QDP (1277) TransformationProof [EQUIVALENT, 0 ms] (1278) QDP (1279) TransformationProof [EQUIVALENT, 0 ms] (1280) QDP (1281) TransformationProof [EQUIVALENT, 0 ms] (1282) QDP (1283) DependencyGraphProof [EQUIVALENT, 0 ms] (1284) QDP (1285) TransformationProof [EQUIVALENT, 0 ms] (1286) QDP (1287) QDPOrderProof [EQUIVALENT, 92 ms] (1288) QDP (1289) QDPOrderProof [EQUIVALENT, 83 ms] (1290) QDP (1291) InductionCalculusProof [EQUIVALENT, 0 ms] (1292) QDP (1293) Narrow [COMPLETE, 0 ms] (1294) TRUE ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" is transformed to "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); primDivNatS0 x y False = Zero; " The following If expression "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" is transformed to "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); primModNatS0 x y False = Succ x; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "absReal x|x >= 0x|otherwise`negate` x; " is transformed to "absReal x = absReal2 x; " "absReal1 x True = x; absReal1 x False = absReal0 x otherwise; " "absReal0 x True = `negate` x; " "absReal2 x = absReal1 x (x >= 0); " The following Function with conditions "gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); " is transformed to "gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; " "gcd'0 x y = gcd' y (x `rem` y); " "gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; " "gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; " The following Function with conditions "gcd 0 0 = error []; gcd x y = gcd' (abs x) (abs y) where { gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); } ; " is transformed to "gcd yz zu = gcd3 yz zu; gcd x y = gcd0 x y; " "gcd0 x y = gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } ; " "gcd1 True yz zu = error []; gcd1 zv zw zx = gcd0 zw zx; " "gcd2 True yz zu = gcd1 (zu == 0) yz zu; gcd2 zy zz vuu = gcd0 zz vuu; " "gcd3 yz zu = gcd2 (yz == 0) yz zu; gcd3 vuv vuw = gcd0 vuv vuw; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "reduce x y|y == 0error []|otherwisex `quot` d :% (y `quot` d) where { d = gcd x y; } ; " is transformed to "reduce x y = reduce2 x y; " "reduce2 x y = reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } ; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } " are unpacked to the following functions on top level "gcd0Gcd'2 x xz = gcd0Gcd'1 (xz == 0) x xz; gcd0Gcd'2 yx yy = gcd0Gcd'0 yx yy; " "gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y); " "gcd0Gcd' x xz = gcd0Gcd'2 x xz; gcd0Gcd' x y = gcd0Gcd'0 x y; " "gcd0Gcd'1 True x xz = x; gcd0Gcd'1 yu yv yw = gcd0Gcd'0 yv yw; " The bindings of the following Let/Where expression "reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } " are unpacked to the following functions on top level "reduce2D vux vuy = gcd vux vuy; " "reduce2Reduce0 vux vuy x y True = x `quot` reduce2D vux vuy :% (y `quot` reduce2D vux vuy); " "reduce2Reduce1 vux vuy x y True = error []; reduce2Reduce1 vux vuy x y False = reduce2Reduce0 vux vuy x y otherwise; " ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (10) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (11) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="sum",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="sum vuz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl' (+) (fromInt (Pos Zero)) vuz3",fontsize=16,color="burlywood",shape="box"];3311[label="vuz3/vuz30 : vuz31",fontsize=10,color="white",style="solid",shape="box"];4 -> 3311[label="",style="solid", color="burlywood", weight=9]; 3311 -> 5[label="",style="solid", color="burlywood", weight=3]; 3312[label="vuz3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 3312[label="",style="solid", color="burlywood", weight=9]; 3312 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl' (+) (fromInt (Pos Zero)) (vuz30 : vuz31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl' (+) (fromInt (Pos Zero)) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="(foldl' (+) $! (+) fromInt (Pos Zero) vuz30)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3313[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];8 -> 3313[label="",style="solid", color="blue", weight=9]; 3313 -> 10[label="",style="solid", color="blue", weight=3]; 3314[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];8 -> 3314[label="",style="solid", color="blue", weight=9]; 3314 -> 11[label="",style="solid", color="blue", weight=3]; 3315[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];8 -> 3315[label="",style="solid", color="blue", weight=9]; 3315 -> 12[label="",style="solid", color="blue", weight=3]; 3316[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];8 -> 3316[label="",style="solid", color="blue", weight=9]; 3316 -> 13[label="",style="solid", color="blue", weight=3]; 3317[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];8 -> 3317[label="",style="solid", color="blue", weight=9]; 3317 -> 14[label="",style="solid", color="blue", weight=3]; 9[label="((+) fromInt (Pos Zero) vuz30 `seq` foldl' (+) ((+) fromInt (Pos Zero) vuz30))",fontsize=16,color="black",shape="box"];9 -> 15[label="",style="solid", color="black", weight=3]; 10[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];10 -> 16[label="",style="solid", color="black", weight=3]; 11[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];11 -> 17[label="",style="solid", color="black", weight=3]; 12[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];12 -> 18[label="",style="solid", color="black", weight=3]; 13[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];13 -> 19[label="",style="solid", color="black", weight=3]; 14[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];14 -> 20[label="",style="solid", color="black", weight=3]; 15 -> 21[label="",style="dashed", color="red", weight=0]; 15[label="enforceWHNF (WHNF ((+) fromInt (Pos Zero) vuz30)) (foldl' (+) ((+) fromInt (Pos Zero) vuz30)) vuz31",fontsize=16,color="magenta"];15 -> 22[label="",style="dashed", color="magenta", weight=3]; 15 -> 23[label="",style="dashed", color="magenta", weight=3]; 16[label="intToRatio (Pos Zero)",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 17[label="primIntToDouble (Pos Zero)",fontsize=16,color="black",shape="box"];17 -> 25[label="",style="solid", color="black", weight=3]; 18[label="Pos Zero",fontsize=16,color="green",shape="box"];19[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];20[label="primIntToFloat (Pos Zero)",fontsize=16,color="black",shape="box"];20 -> 26[label="",style="solid", color="black", weight=3]; 22[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="blue",shape="box"];3318[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];22 -> 3318[label="",style="solid", color="blue", weight=9]; 3318 -> 27[label="",style="solid", color="blue", weight=3]; 3319[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];22 -> 3319[label="",style="solid", color="blue", weight=9]; 3319 -> 28[label="",style="solid", color="blue", weight=3]; 3320[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];22 -> 3320[label="",style="solid", color="blue", weight=9]; 3320 -> 29[label="",style="solid", color="blue", weight=3]; 3321[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];22 -> 3321[label="",style="solid", color="blue", weight=9]; 3321 -> 30[label="",style="solid", color="blue", weight=3]; 3322[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];22 -> 3322[label="",style="solid", color="blue", weight=9]; 3322 -> 31[label="",style="solid", color="blue", weight=3]; 23[label="vuz31",fontsize=16,color="green",shape="box"];21[label="enforceWHNF (WHNF vuz7) (foldl' (+) vuz7) vuz8",fontsize=16,color="black",shape="triangle"];21 -> 32[label="",style="solid", color="black", weight=3]; 24[label="fromInt (Pos Zero) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];24 -> 33[label="",style="dashed", color="green", weight=3]; 24 -> 34[label="",style="dashed", color="green", weight=3]; 25[label="Double (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];26[label="Float (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];27 -> 35[label="",style="dashed", color="red", weight=0]; 27[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];27 -> 36[label="",style="dashed", color="magenta", weight=3]; 28 -> 37[label="",style="dashed", color="red", weight=0]; 28[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];28 -> 38[label="",style="dashed", color="magenta", weight=3]; 29 -> 39[label="",style="dashed", color="red", weight=0]; 29[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];29 -> 40[label="",style="dashed", color="magenta", weight=3]; 30 -> 41[label="",style="dashed", color="red", weight=0]; 30[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];30 -> 42[label="",style="dashed", color="magenta", weight=3]; 31 -> 43[label="",style="dashed", color="red", weight=0]; 31[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];31 -> 44[label="",style="dashed", color="magenta", weight=3]; 32[label="foldl' (+) vuz7 vuz8",fontsize=16,color="burlywood",shape="box"];3323[label="vuz8/vuz80 : vuz81",fontsize=10,color="white",style="solid",shape="box"];32 -> 3323[label="",style="solid", color="burlywood", weight=9]; 3323 -> 45[label="",style="solid", color="burlywood", weight=3]; 3324[label="vuz8/[]",fontsize=10,color="white",style="solid",shape="box"];32 -> 3324[label="",style="solid", color="burlywood", weight=9]; 3324 -> 46[label="",style="solid", color="burlywood", weight=3]; 33[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3325[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];33 -> 3325[label="",style="solid", color="blue", weight=9]; 3325 -> 47[label="",style="solid", color="blue", weight=3]; 3326[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];33 -> 3326[label="",style="solid", color="blue", weight=9]; 3326 -> 48[label="",style="solid", color="blue", weight=3]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];3327[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];34 -> 3327[label="",style="solid", color="blue", weight=9]; 3327 -> 49[label="",style="solid", color="blue", weight=3]; 3328[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];34 -> 3328[label="",style="solid", color="blue", weight=9]; 3328 -> 50[label="",style="solid", color="blue", weight=3]; 36 -> 10[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];35[label="(+) vuz9 vuz30",fontsize=16,color="burlywood",shape="triangle"];3329[label="vuz9/vuz90 :% vuz91",fontsize=10,color="white",style="solid",shape="box"];35 -> 3329[label="",style="solid", color="burlywood", weight=9]; 3329 -> 51[label="",style="solid", color="burlywood", weight=3]; 38 -> 11[label="",style="dashed", color="red", weight=0]; 38[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];37[label="(+) vuz10 vuz30",fontsize=16,color="black",shape="triangle"];37 -> 52[label="",style="solid", color="black", weight=3]; 40 -> 12[label="",style="dashed", color="red", weight=0]; 40[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];39[label="(+) vuz11 vuz30",fontsize=16,color="black",shape="triangle"];39 -> 53[label="",style="solid", color="black", weight=3]; 42 -> 13[label="",style="dashed", color="red", weight=0]; 42[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];41[label="(+) vuz12 vuz30",fontsize=16,color="burlywood",shape="triangle"];3330[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];41 -> 3330[label="",style="solid", color="burlywood", weight=9]; 3330 -> 54[label="",style="solid", color="burlywood", weight=3]; 44 -> 14[label="",style="dashed", color="red", weight=0]; 44[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];43[label="(+) vuz13 vuz30",fontsize=16,color="black",shape="triangle"];43 -> 55[label="",style="solid", color="black", weight=3]; 45[label="foldl' (+) vuz7 (vuz80 : vuz81)",fontsize=16,color="black",shape="box"];45 -> 56[label="",style="solid", color="black", weight=3]; 46[label="foldl' (+) vuz7 []",fontsize=16,color="black",shape="box"];46 -> 57[label="",style="solid", color="black", weight=3]; 47 -> 12[label="",style="dashed", color="red", weight=0]; 47[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];48 -> 13[label="",style="dashed", color="red", weight=0]; 48[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];49[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];49 -> 58[label="",style="solid", color="black", weight=3]; 50[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];50 -> 59[label="",style="solid", color="black", weight=3]; 51[label="(+) vuz90 :% vuz91 vuz30",fontsize=16,color="burlywood",shape="box"];3331[label="vuz30/vuz300 :% vuz301",fontsize=10,color="white",style="solid",shape="box"];51 -> 3331[label="",style="solid", color="burlywood", weight=9]; 3331 -> 60[label="",style="solid", color="burlywood", weight=3]; 52[label="primPlusDouble vuz10 vuz30",fontsize=16,color="burlywood",shape="box"];3332[label="vuz10/Double vuz100 vuz101",fontsize=10,color="white",style="solid",shape="box"];52 -> 3332[label="",style="solid", color="burlywood", weight=9]; 3332 -> 61[label="",style="solid", color="burlywood", weight=3]; 53[label="primPlusInt vuz11 vuz30",fontsize=16,color="burlywood",shape="triangle"];3333[label="vuz11/Pos vuz110",fontsize=10,color="white",style="solid",shape="box"];53 -> 3333[label="",style="solid", color="burlywood", weight=9]; 3333 -> 62[label="",style="solid", color="burlywood", weight=3]; 3334[label="vuz11/Neg vuz110",fontsize=10,color="white",style="solid",shape="box"];53 -> 3334[label="",style="solid", color="burlywood", weight=9]; 3334 -> 63[label="",style="solid", color="burlywood", weight=3]; 54[label="(+) Integer vuz120 vuz30",fontsize=16,color="burlywood",shape="box"];3335[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];54 -> 3335[label="",style="solid", color="burlywood", weight=9]; 3335 -> 64[label="",style="solid", color="burlywood", weight=3]; 55[label="primPlusFloat vuz13 vuz30",fontsize=16,color="burlywood",shape="box"];3336[label="vuz13/Float vuz130 vuz131",fontsize=10,color="white",style="solid",shape="box"];55 -> 3336[label="",style="solid", color="burlywood", weight=9]; 3336 -> 65[label="",style="solid", color="burlywood", weight=3]; 56[label="(foldl' (+) $! (+) vuz7 vuz80)",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 57[label="vuz7",fontsize=16,color="green",shape="box"];58[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];59[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];60[label="(+) vuz90 :% vuz91 vuz300 :% vuz301",fontsize=16,color="black",shape="box"];60 -> 67[label="",style="solid", color="black", weight=3]; 61[label="primPlusDouble (Double vuz100 vuz101) vuz30",fontsize=16,color="burlywood",shape="box"];3337[label="vuz30/Double vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];61 -> 3337[label="",style="solid", color="burlywood", weight=9]; 3337 -> 68[label="",style="solid", color="burlywood", weight=3]; 62[label="primPlusInt (Pos vuz110) vuz30",fontsize=16,color="burlywood",shape="box"];3338[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];62 -> 3338[label="",style="solid", color="burlywood", weight=9]; 3338 -> 69[label="",style="solid", color="burlywood", weight=3]; 3339[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];62 -> 3339[label="",style="solid", color="burlywood", weight=9]; 3339 -> 70[label="",style="solid", color="burlywood", weight=3]; 63[label="primPlusInt (Neg vuz110) vuz30",fontsize=16,color="burlywood",shape="box"];3340[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3340[label="",style="solid", color="burlywood", weight=9]; 3340 -> 71[label="",style="solid", color="burlywood", weight=3]; 3341[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3341[label="",style="solid", color="burlywood", weight=9]; 3341 -> 72[label="",style="solid", color="burlywood", weight=3]; 64[label="(+) Integer vuz120 Integer vuz300",fontsize=16,color="black",shape="box"];64 -> 73[label="",style="solid", color="black", weight=3]; 65[label="primPlusFloat (Float vuz130 vuz131) vuz30",fontsize=16,color="burlywood",shape="box"];3342[label="vuz30/Float vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];65 -> 3342[label="",style="solid", color="burlywood", weight=9]; 3342 -> 74[label="",style="solid", color="burlywood", weight=3]; 66[label="((+) vuz7 vuz80 `seq` foldl' (+) ((+) vuz7 vuz80))",fontsize=16,color="black",shape="box"];66 -> 75[label="",style="solid", color="black", weight=3]; 67[label="reduce (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301)",fontsize=16,color="black",shape="box"];67 -> 76[label="",style="solid", color="black", weight=3]; 68[label="primPlusDouble (Double vuz100 vuz101) (Double vuz300 vuz301)",fontsize=16,color="black",shape="box"];68 -> 77[label="",style="solid", color="black", weight=3]; 69[label="primPlusInt (Pos vuz110) (Pos vuz300)",fontsize=16,color="black",shape="box"];69 -> 78[label="",style="solid", color="black", weight=3]; 70[label="primPlusInt (Pos vuz110) (Neg vuz300)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 71[label="primPlusInt (Neg vuz110) (Pos vuz300)",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 72[label="primPlusInt (Neg vuz110) (Neg vuz300)",fontsize=16,color="black",shape="box"];72 -> 81[label="",style="solid", color="black", weight=3]; 73[label="Integer (primPlusInt vuz120 vuz300)",fontsize=16,color="green",shape="box"];73 -> 82[label="",style="dashed", color="green", weight=3]; 74[label="primPlusFloat (Float vuz130 vuz131) (Float vuz300 vuz301)",fontsize=16,color="black",shape="box"];74 -> 83[label="",style="solid", color="black", weight=3]; 75 -> 21[label="",style="dashed", color="red", weight=0]; 75[label="enforceWHNF (WHNF ((+) vuz7 vuz80)) (foldl' (+) ((+) vuz7 vuz80)) vuz81",fontsize=16,color="magenta"];75 -> 84[label="",style="dashed", color="magenta", weight=3]; 75 -> 85[label="",style="dashed", color="magenta", weight=3]; 76[label="reduce2 (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301)",fontsize=16,color="black",shape="box"];76 -> 86[label="",style="solid", color="black", weight=3]; 77[label="Double (vuz100 * vuz301 + vuz300 * vuz101) (vuz101 * vuz301)",fontsize=16,color="green",shape="box"];77 -> 87[label="",style="dashed", color="green", weight=3]; 77 -> 88[label="",style="dashed", color="green", weight=3]; 78[label="Pos (primPlusNat vuz110 vuz300)",fontsize=16,color="green",shape="box"];78 -> 89[label="",style="dashed", color="green", weight=3]; 79[label="primMinusNat vuz110 vuz300",fontsize=16,color="burlywood",shape="triangle"];3343[label="vuz110/Succ vuz1100",fontsize=10,color="white",style="solid",shape="box"];79 -> 3343[label="",style="solid", color="burlywood", weight=9]; 3343 -> 90[label="",style="solid", color="burlywood", weight=3]; 3344[label="vuz110/Zero",fontsize=10,color="white",style="solid",shape="box"];79 -> 3344[label="",style="solid", color="burlywood", weight=9]; 3344 -> 91[label="",style="solid", color="burlywood", weight=3]; 80 -> 79[label="",style="dashed", color="red", weight=0]; 80[label="primMinusNat vuz300 vuz110",fontsize=16,color="magenta"];80 -> 92[label="",style="dashed", color="magenta", weight=3]; 80 -> 93[label="",style="dashed", color="magenta", weight=3]; 81[label="Neg (primPlusNat vuz110 vuz300)",fontsize=16,color="green",shape="box"];81 -> 94[label="",style="dashed", color="green", weight=3]; 82 -> 53[label="",style="dashed", color="red", weight=0]; 82[label="primPlusInt vuz120 vuz300",fontsize=16,color="magenta"];82 -> 95[label="",style="dashed", color="magenta", weight=3]; 82 -> 96[label="",style="dashed", color="magenta", weight=3]; 83[label="Float (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301)",fontsize=16,color="green",shape="box"];83 -> 97[label="",style="dashed", color="green", weight=3]; 83 -> 98[label="",style="dashed", color="green", weight=3]; 84[label="(+) vuz7 vuz80",fontsize=16,color="blue",shape="box"];3345[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];84 -> 3345[label="",style="solid", color="blue", weight=9]; 3345 -> 99[label="",style="solid", color="blue", weight=3]; 3346[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];84 -> 3346[label="",style="solid", color="blue", weight=9]; 3346 -> 100[label="",style="solid", color="blue", weight=3]; 3347[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 3347[label="",style="solid", color="blue", weight=9]; 3347 -> 101[label="",style="solid", color="blue", weight=3]; 3348[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 3348[label="",style="solid", color="blue", weight=9]; 3348 -> 102[label="",style="solid", color="blue", weight=3]; 3349[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];84 -> 3349[label="",style="solid", color="blue", weight=9]; 3349 -> 103[label="",style="solid", color="blue", weight=3]; 85[label="vuz81",fontsize=16,color="green",shape="box"];86 -> 104[label="",style="dashed", color="red", weight=0]; 86[label="reduce2Reduce1 (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301) (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301) (vuz91 * vuz301 == fromInt (Pos Zero))",fontsize=16,color="magenta"];86 -> 105[label="",style="dashed", color="magenta", weight=3]; 86 -> 106[label="",style="dashed", color="magenta", weight=3]; 86 -> 107[label="",style="dashed", color="magenta", weight=3]; 86 -> 108[label="",style="dashed", color="magenta", weight=3]; 86 -> 109[label="",style="dashed", color="magenta", weight=3]; 87 -> 39[label="",style="dashed", color="red", weight=0]; 87[label="vuz100 * vuz301 + vuz300 * vuz101",fontsize=16,color="magenta"];87 -> 110[label="",style="dashed", color="magenta", weight=3]; 87 -> 111[label="",style="dashed", color="magenta", weight=3]; 88[label="vuz101 * vuz301",fontsize=16,color="black",shape="triangle"];88 -> 112[label="",style="solid", color="black", weight=3]; 89[label="primPlusNat vuz110 vuz300",fontsize=16,color="burlywood",shape="triangle"];3350[label="vuz110/Succ vuz1100",fontsize=10,color="white",style="solid",shape="box"];89 -> 3350[label="",style="solid", color="burlywood", weight=9]; 3350 -> 113[label="",style="solid", color="burlywood", weight=3]; 3351[label="vuz110/Zero",fontsize=10,color="white",style="solid",shape="box"];89 -> 3351[label="",style="solid", color="burlywood", weight=9]; 3351 -> 114[label="",style="solid", color="burlywood", weight=3]; 90[label="primMinusNat (Succ vuz1100) vuz300",fontsize=16,color="burlywood",shape="box"];3352[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];90 -> 3352[label="",style="solid", color="burlywood", weight=9]; 3352 -> 115[label="",style="solid", color="burlywood", weight=3]; 3353[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];90 -> 3353[label="",style="solid", color="burlywood", weight=9]; 3353 -> 116[label="",style="solid", color="burlywood", weight=3]; 91[label="primMinusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3354[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];91 -> 3354[label="",style="solid", color="burlywood", weight=9]; 3354 -> 117[label="",style="solid", color="burlywood", weight=3]; 3355[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];91 -> 3355[label="",style="solid", color="burlywood", weight=9]; 3355 -> 118[label="",style="solid", color="burlywood", weight=3]; 92[label="vuz110",fontsize=16,color="green",shape="box"];93[label="vuz300",fontsize=16,color="green",shape="box"];94 -> 89[label="",style="dashed", color="red", weight=0]; 94[label="primPlusNat vuz110 vuz300",fontsize=16,color="magenta"];94 -> 119[label="",style="dashed", color="magenta", weight=3]; 94 -> 120[label="",style="dashed", color="magenta", weight=3]; 95[label="vuz120",fontsize=16,color="green",shape="box"];96[label="vuz300",fontsize=16,color="green",shape="box"];97 -> 39[label="",style="dashed", color="red", weight=0]; 97[label="vuz130 * vuz301 + vuz300 * vuz131",fontsize=16,color="magenta"];97 -> 121[label="",style="dashed", color="magenta", weight=3]; 97 -> 122[label="",style="dashed", color="magenta", weight=3]; 98 -> 88[label="",style="dashed", color="red", weight=0]; 98[label="vuz131 * vuz301",fontsize=16,color="magenta"];98 -> 123[label="",style="dashed", color="magenta", weight=3]; 98 -> 124[label="",style="dashed", color="magenta", weight=3]; 99 -> 35[label="",style="dashed", color="red", weight=0]; 99[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];99 -> 125[label="",style="dashed", color="magenta", weight=3]; 99 -> 126[label="",style="dashed", color="magenta", weight=3]; 100 -> 37[label="",style="dashed", color="red", weight=0]; 100[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];100 -> 127[label="",style="dashed", color="magenta", weight=3]; 100 -> 128[label="",style="dashed", color="magenta", weight=3]; 101 -> 39[label="",style="dashed", color="red", weight=0]; 101[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];101 -> 129[label="",style="dashed", color="magenta", weight=3]; 101 -> 130[label="",style="dashed", color="magenta", weight=3]; 102 -> 41[label="",style="dashed", color="red", weight=0]; 102[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];102 -> 131[label="",style="dashed", color="magenta", weight=3]; 102 -> 132[label="",style="dashed", color="magenta", weight=3]; 103 -> 43[label="",style="dashed", color="red", weight=0]; 103[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];103 -> 133[label="",style="dashed", color="magenta", weight=3]; 103 -> 134[label="",style="dashed", color="magenta", weight=3]; 105[label="vuz91 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3356[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];105 -> 3356[label="",style="solid", color="blue", weight=9]; 3356 -> 135[label="",style="solid", color="blue", weight=3]; 3357[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];105 -> 3357[label="",style="solid", color="blue", weight=9]; 3357 -> 136[label="",style="solid", color="blue", weight=3]; 106[label="vuz300",fontsize=16,color="green",shape="box"];107[label="vuz90",fontsize=16,color="green",shape="box"];108[label="vuz301",fontsize=16,color="green",shape="box"];109[label="vuz91",fontsize=16,color="green",shape="box"];104[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) vuz24",fontsize=16,color="burlywood",shape="triangle"];3358[label="vuz24/False",fontsize=10,color="white",style="solid",shape="box"];104 -> 3358[label="",style="solid", color="burlywood", weight=9]; 3358 -> 137[label="",style="solid", color="burlywood", weight=3]; 3359[label="vuz24/True",fontsize=10,color="white",style="solid",shape="box"];104 -> 3359[label="",style="solid", color="burlywood", weight=9]; 3359 -> 138[label="",style="solid", color="burlywood", weight=3]; 110 -> 88[label="",style="dashed", color="red", weight=0]; 110[label="vuz100 * vuz301",fontsize=16,color="magenta"];110 -> 139[label="",style="dashed", color="magenta", weight=3]; 111 -> 88[label="",style="dashed", color="red", weight=0]; 111[label="vuz300 * vuz101",fontsize=16,color="magenta"];111 -> 140[label="",style="dashed", color="magenta", weight=3]; 111 -> 141[label="",style="dashed", color="magenta", weight=3]; 112[label="primMulInt vuz101 vuz301",fontsize=16,color="burlywood",shape="triangle"];3360[label="vuz101/Pos vuz1010",fontsize=10,color="white",style="solid",shape="box"];112 -> 3360[label="",style="solid", color="burlywood", weight=9]; 3360 -> 142[label="",style="solid", color="burlywood", weight=3]; 3361[label="vuz101/Neg vuz1010",fontsize=10,color="white",style="solid",shape="box"];112 -> 3361[label="",style="solid", color="burlywood", weight=9]; 3361 -> 143[label="",style="solid", color="burlywood", weight=3]; 113[label="primPlusNat (Succ vuz1100) vuz300",fontsize=16,color="burlywood",shape="box"];3362[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];113 -> 3362[label="",style="solid", color="burlywood", weight=9]; 3362 -> 144[label="",style="solid", color="burlywood", weight=3]; 3363[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];113 -> 3363[label="",style="solid", color="burlywood", weight=9]; 3363 -> 145[label="",style="solid", color="burlywood", weight=3]; 114[label="primPlusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3364[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];114 -> 3364[label="",style="solid", color="burlywood", weight=9]; 3364 -> 146[label="",style="solid", color="burlywood", weight=3]; 3365[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];114 -> 3365[label="",style="solid", color="burlywood", weight=9]; 3365 -> 147[label="",style="solid", color="burlywood", weight=3]; 115[label="primMinusNat (Succ vuz1100) (Succ vuz3000)",fontsize=16,color="black",shape="box"];115 -> 148[label="",style="solid", color="black", weight=3]; 116[label="primMinusNat (Succ vuz1100) Zero",fontsize=16,color="black",shape="box"];116 -> 149[label="",style="solid", color="black", weight=3]; 117[label="primMinusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];117 -> 150[label="",style="solid", color="black", weight=3]; 118[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];118 -> 151[label="",style="solid", color="black", weight=3]; 119[label="vuz300",fontsize=16,color="green",shape="box"];120[label="vuz110",fontsize=16,color="green",shape="box"];121 -> 88[label="",style="dashed", color="red", weight=0]; 121[label="vuz130 * vuz301",fontsize=16,color="magenta"];121 -> 152[label="",style="dashed", color="magenta", weight=3]; 121 -> 153[label="",style="dashed", color="magenta", weight=3]; 122 -> 88[label="",style="dashed", color="red", weight=0]; 122[label="vuz300 * vuz131",fontsize=16,color="magenta"];122 -> 154[label="",style="dashed", color="magenta", weight=3]; 122 -> 155[label="",style="dashed", color="magenta", weight=3]; 123[label="vuz301",fontsize=16,color="green",shape="box"];124[label="vuz131",fontsize=16,color="green",shape="box"];125[label="vuz80",fontsize=16,color="green",shape="box"];126[label="vuz7",fontsize=16,color="green",shape="box"];127[label="vuz80",fontsize=16,color="green",shape="box"];128[label="vuz7",fontsize=16,color="green",shape="box"];129[label="vuz7",fontsize=16,color="green",shape="box"];130[label="vuz80",fontsize=16,color="green",shape="box"];131[label="vuz80",fontsize=16,color="green",shape="box"];132[label="vuz7",fontsize=16,color="green",shape="box"];133[label="vuz80",fontsize=16,color="green",shape="box"];134[label="vuz7",fontsize=16,color="green",shape="box"];135 -> 156[label="",style="dashed", color="red", weight=0]; 135[label="vuz91 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];135 -> 157[label="",style="dashed", color="magenta", weight=3]; 135 -> 158[label="",style="dashed", color="magenta", weight=3]; 136 -> 159[label="",style="dashed", color="red", weight=0]; 136[label="vuz91 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];136 -> 160[label="",style="dashed", color="magenta", weight=3]; 137[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) False",fontsize=16,color="black",shape="box"];137 -> 161[label="",style="solid", color="black", weight=3]; 138[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];138 -> 162[label="",style="solid", color="black", weight=3]; 139[label="vuz100",fontsize=16,color="green",shape="box"];140[label="vuz101",fontsize=16,color="green",shape="box"];141[label="vuz300",fontsize=16,color="green",shape="box"];142[label="primMulInt (Pos vuz1010) vuz301",fontsize=16,color="burlywood",shape="box"];3366[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];142 -> 3366[label="",style="solid", color="burlywood", weight=9]; 3366 -> 163[label="",style="solid", color="burlywood", weight=3]; 3367[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];142 -> 3367[label="",style="solid", color="burlywood", weight=9]; 3367 -> 164[label="",style="solid", color="burlywood", weight=3]; 143[label="primMulInt (Neg vuz1010) vuz301",fontsize=16,color="burlywood",shape="box"];3368[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];143 -> 3368[label="",style="solid", color="burlywood", weight=9]; 3368 -> 165[label="",style="solid", color="burlywood", weight=3]; 3369[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];143 -> 3369[label="",style="solid", color="burlywood", weight=9]; 3369 -> 166[label="",style="solid", color="burlywood", weight=3]; 144[label="primPlusNat (Succ vuz1100) (Succ vuz3000)",fontsize=16,color="black",shape="box"];144 -> 167[label="",style="solid", color="black", weight=3]; 145[label="primPlusNat (Succ vuz1100) Zero",fontsize=16,color="black",shape="box"];145 -> 168[label="",style="solid", color="black", weight=3]; 146[label="primPlusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];146 -> 169[label="",style="solid", color="black", weight=3]; 147[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];147 -> 170[label="",style="solid", color="black", weight=3]; 148 -> 79[label="",style="dashed", color="red", weight=0]; 148[label="primMinusNat vuz1100 vuz3000",fontsize=16,color="magenta"];148 -> 171[label="",style="dashed", color="magenta", weight=3]; 148 -> 172[label="",style="dashed", color="magenta", weight=3]; 149[label="Pos (Succ vuz1100)",fontsize=16,color="green",shape="box"];150[label="Neg (Succ vuz3000)",fontsize=16,color="green",shape="box"];151[label="Pos Zero",fontsize=16,color="green",shape="box"];152[label="vuz301",fontsize=16,color="green",shape="box"];153[label="vuz130",fontsize=16,color="green",shape="box"];154[label="vuz131",fontsize=16,color="green",shape="box"];155[label="vuz300",fontsize=16,color="green",shape="box"];157 -> 88[label="",style="dashed", color="red", weight=0]; 157[label="vuz91 * vuz301",fontsize=16,color="magenta"];157 -> 173[label="",style="dashed", color="magenta", weight=3]; 157 -> 174[label="",style="dashed", color="magenta", weight=3]; 158 -> 12[label="",style="dashed", color="red", weight=0]; 158[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];156[label="vuz26 == vuz25",fontsize=16,color="black",shape="triangle"];156 -> 175[label="",style="solid", color="black", weight=3]; 160 -> 13[label="",style="dashed", color="red", weight=0]; 160[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];159[label="vuz91 * vuz301 == vuz27",fontsize=16,color="burlywood",shape="triangle"];3370[label="vuz91/Integer vuz910",fontsize=10,color="white",style="solid",shape="box"];159 -> 3370[label="",style="solid", color="burlywood", weight=9]; 3370 -> 176[label="",style="solid", color="burlywood", weight=3]; 161[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) otherwise",fontsize=16,color="black",shape="box"];161 -> 177[label="",style="solid", color="black", weight=3]; 162[label="error []",fontsize=16,color="black",shape="box"];162 -> 178[label="",style="solid", color="black", weight=3]; 163[label="primMulInt (Pos vuz1010) (Pos vuz3010)",fontsize=16,color="black",shape="box"];163 -> 179[label="",style="solid", color="black", weight=3]; 164[label="primMulInt (Pos vuz1010) (Neg vuz3010)",fontsize=16,color="black",shape="box"];164 -> 180[label="",style="solid", color="black", weight=3]; 165[label="primMulInt (Neg vuz1010) (Pos vuz3010)",fontsize=16,color="black",shape="box"];165 -> 181[label="",style="solid", color="black", weight=3]; 166[label="primMulInt (Neg vuz1010) (Neg vuz3010)",fontsize=16,color="black",shape="box"];166 -> 182[label="",style="solid", color="black", weight=3]; 167[label="Succ (Succ (primPlusNat vuz1100 vuz3000))",fontsize=16,color="green",shape="box"];167 -> 183[label="",style="dashed", color="green", weight=3]; 168[label="Succ vuz1100",fontsize=16,color="green",shape="box"];169[label="Succ vuz3000",fontsize=16,color="green",shape="box"];170[label="Zero",fontsize=16,color="green",shape="box"];171[label="vuz3000",fontsize=16,color="green",shape="box"];172[label="vuz1100",fontsize=16,color="green",shape="box"];173[label="vuz301",fontsize=16,color="green",shape="box"];174[label="vuz91",fontsize=16,color="green",shape="box"];175[label="primEqInt vuz26 vuz25",fontsize=16,color="burlywood",shape="triangle"];3371[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];175 -> 3371[label="",style="solid", color="burlywood", weight=9]; 3371 -> 184[label="",style="solid", color="burlywood", weight=3]; 3372[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];175 -> 3372[label="",style="solid", color="burlywood", weight=9]; 3372 -> 185[label="",style="solid", color="burlywood", weight=3]; 176[label="Integer vuz910 * vuz301 == vuz27",fontsize=16,color="burlywood",shape="box"];3373[label="vuz301/Integer vuz3010",fontsize=10,color="white",style="solid",shape="box"];176 -> 3373[label="",style="solid", color="burlywood", weight=9]; 3373 -> 186[label="",style="solid", color="burlywood", weight=3]; 177[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];177 -> 187[label="",style="solid", color="black", weight=3]; 178[label="error []",fontsize=16,color="red",shape="box"];179[label="Pos (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];179 -> 188[label="",style="dashed", color="green", weight=3]; 180[label="Neg (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];180 -> 189[label="",style="dashed", color="green", weight=3]; 181[label="Neg (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];181 -> 190[label="",style="dashed", color="green", weight=3]; 182[label="Pos (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];182 -> 191[label="",style="dashed", color="green", weight=3]; 183 -> 89[label="",style="dashed", color="red", weight=0]; 183[label="primPlusNat vuz1100 vuz3000",fontsize=16,color="magenta"];183 -> 192[label="",style="dashed", color="magenta", weight=3]; 183 -> 193[label="",style="dashed", color="magenta", weight=3]; 184[label="primEqInt (Pos vuz260) vuz25",fontsize=16,color="burlywood",shape="box"];3374[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];184 -> 3374[label="",style="solid", color="burlywood", weight=9]; 3374 -> 194[label="",style="solid", color="burlywood", weight=3]; 3375[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];184 -> 3375[label="",style="solid", color="burlywood", weight=9]; 3375 -> 195[label="",style="solid", color="burlywood", weight=3]; 185[label="primEqInt (Neg vuz260) vuz25",fontsize=16,color="burlywood",shape="box"];3376[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];185 -> 3376[label="",style="solid", color="burlywood", weight=9]; 3376 -> 196[label="",style="solid", color="burlywood", weight=3]; 3377[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];185 -> 3377[label="",style="solid", color="burlywood", weight=9]; 3377 -> 197[label="",style="solid", color="burlywood", weight=3]; 186[label="Integer vuz910 * Integer vuz3010 == vuz27",fontsize=16,color="black",shape="box"];186 -> 198[label="",style="solid", color="black", weight=3]; 187[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) :% (vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21))",fontsize=16,color="green",shape="box"];187 -> 199[label="",style="dashed", color="green", weight=3]; 187 -> 200[label="",style="dashed", color="green", weight=3]; 188[label="primMulNat vuz1010 vuz3010",fontsize=16,color="burlywood",shape="triangle"];3378[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];188 -> 3378[label="",style="solid", color="burlywood", weight=9]; 3378 -> 201[label="",style="solid", color="burlywood", weight=3]; 3379[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];188 -> 3379[label="",style="solid", color="burlywood", weight=9]; 3379 -> 202[label="",style="solid", color="burlywood", weight=3]; 189 -> 188[label="",style="dashed", color="red", weight=0]; 189[label="primMulNat vuz1010 vuz3010",fontsize=16,color="magenta"];189 -> 203[label="",style="dashed", color="magenta", weight=3]; 190 -> 188[label="",style="dashed", color="red", weight=0]; 190[label="primMulNat vuz1010 vuz3010",fontsize=16,color="magenta"];190 -> 204[label="",style="dashed", color="magenta", weight=3]; 191 -> 188[label="",style="dashed", color="red", weight=0]; 191[label="primMulNat vuz1010 vuz3010",fontsize=16,color="magenta"];191 -> 205[label="",style="dashed", color="magenta", weight=3]; 191 -> 206[label="",style="dashed", color="magenta", weight=3]; 192[label="vuz3000",fontsize=16,color="green",shape="box"];193[label="vuz1100",fontsize=16,color="green",shape="box"];194[label="primEqInt (Pos (Succ vuz2600)) vuz25",fontsize=16,color="burlywood",shape="box"];3380[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];194 -> 3380[label="",style="solid", color="burlywood", weight=9]; 3380 -> 207[label="",style="solid", color="burlywood", weight=3]; 3381[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];194 -> 3381[label="",style="solid", color="burlywood", weight=9]; 3381 -> 208[label="",style="solid", color="burlywood", weight=3]; 195[label="primEqInt (Pos Zero) vuz25",fontsize=16,color="burlywood",shape="box"];3382[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];195 -> 3382[label="",style="solid", color="burlywood", weight=9]; 3382 -> 209[label="",style="solid", color="burlywood", weight=3]; 3383[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];195 -> 3383[label="",style="solid", color="burlywood", weight=9]; 3383 -> 210[label="",style="solid", color="burlywood", weight=3]; 196[label="primEqInt (Neg (Succ vuz2600)) vuz25",fontsize=16,color="burlywood",shape="box"];3384[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];196 -> 3384[label="",style="solid", color="burlywood", weight=9]; 3384 -> 211[label="",style="solid", color="burlywood", weight=3]; 3385[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];196 -> 3385[label="",style="solid", color="burlywood", weight=9]; 3385 -> 212[label="",style="solid", color="burlywood", weight=3]; 197[label="primEqInt (Neg Zero) vuz25",fontsize=16,color="burlywood",shape="box"];3386[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];197 -> 3386[label="",style="solid", color="burlywood", weight=9]; 3386 -> 213[label="",style="solid", color="burlywood", weight=3]; 3387[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];197 -> 3387[label="",style="solid", color="burlywood", weight=9]; 3387 -> 214[label="",style="solid", color="burlywood", weight=3]; 198 -> 215[label="",style="dashed", color="red", weight=0]; 198[label="Integer (primMulInt vuz910 vuz3010) == vuz27",fontsize=16,color="magenta"];198 -> 216[label="",style="dashed", color="magenta", weight=3]; 199[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3388[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];199 -> 3388[label="",style="solid", color="blue", weight=9]; 3388 -> 217[label="",style="solid", color="blue", weight=3]; 3389[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];199 -> 3389[label="",style="solid", color="blue", weight=9]; 3389 -> 218[label="",style="solid", color="blue", weight=3]; 200[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3390[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];200 -> 3390[label="",style="solid", color="blue", weight=9]; 3390 -> 219[label="",style="solid", color="blue", weight=3]; 3391[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];200 -> 3391[label="",style="solid", color="blue", weight=9]; 3391 -> 220[label="",style="solid", color="blue", weight=3]; 201[label="primMulNat (Succ vuz10100) vuz3010",fontsize=16,color="burlywood",shape="box"];3392[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];201 -> 3392[label="",style="solid", color="burlywood", weight=9]; 3392 -> 221[label="",style="solid", color="burlywood", weight=3]; 3393[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];201 -> 3393[label="",style="solid", color="burlywood", weight=9]; 3393 -> 222[label="",style="solid", color="burlywood", weight=3]; 202[label="primMulNat Zero vuz3010",fontsize=16,color="burlywood",shape="box"];3394[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];202 -> 3394[label="",style="solid", color="burlywood", weight=9]; 3394 -> 223[label="",style="solid", color="burlywood", weight=3]; 3395[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];202 -> 3395[label="",style="solid", color="burlywood", weight=9]; 3395 -> 224[label="",style="solid", color="burlywood", weight=3]; 203[label="vuz3010",fontsize=16,color="green",shape="box"];204[label="vuz1010",fontsize=16,color="green",shape="box"];205[label="vuz3010",fontsize=16,color="green",shape="box"];206[label="vuz1010",fontsize=16,color="green",shape="box"];207[label="primEqInt (Pos (Succ vuz2600)) (Pos vuz250)",fontsize=16,color="burlywood",shape="box"];3396[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];207 -> 3396[label="",style="solid", color="burlywood", weight=9]; 3396 -> 225[label="",style="solid", color="burlywood", weight=3]; 3397[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];207 -> 3397[label="",style="solid", color="burlywood", weight=9]; 3397 -> 226[label="",style="solid", color="burlywood", weight=3]; 208[label="primEqInt (Pos (Succ vuz2600)) (Neg vuz250)",fontsize=16,color="black",shape="box"];208 -> 227[label="",style="solid", color="black", weight=3]; 209[label="primEqInt (Pos Zero) (Pos vuz250)",fontsize=16,color="burlywood",shape="box"];3398[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];209 -> 3398[label="",style="solid", color="burlywood", weight=9]; 3398 -> 228[label="",style="solid", color="burlywood", weight=3]; 3399[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];209 -> 3399[label="",style="solid", color="burlywood", weight=9]; 3399 -> 229[label="",style="solid", color="burlywood", weight=3]; 210[label="primEqInt (Pos Zero) (Neg vuz250)",fontsize=16,color="burlywood",shape="box"];3400[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];210 -> 3400[label="",style="solid", color="burlywood", weight=9]; 3400 -> 230[label="",style="solid", color="burlywood", weight=3]; 3401[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];210 -> 3401[label="",style="solid", color="burlywood", weight=9]; 3401 -> 231[label="",style="solid", color="burlywood", weight=3]; 211[label="primEqInt (Neg (Succ vuz2600)) (Pos vuz250)",fontsize=16,color="black",shape="box"];211 -> 232[label="",style="solid", color="black", weight=3]; 212[label="primEqInt (Neg (Succ vuz2600)) (Neg vuz250)",fontsize=16,color="burlywood",shape="box"];3402[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];212 -> 3402[label="",style="solid", color="burlywood", weight=9]; 3402 -> 233[label="",style="solid", color="burlywood", weight=3]; 3403[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];212 -> 3403[label="",style="solid", color="burlywood", weight=9]; 3403 -> 234[label="",style="solid", color="burlywood", weight=3]; 213[label="primEqInt (Neg Zero) (Pos vuz250)",fontsize=16,color="burlywood",shape="box"];3404[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];213 -> 3404[label="",style="solid", color="burlywood", weight=9]; 3404 -> 235[label="",style="solid", color="burlywood", weight=3]; 3405[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];213 -> 3405[label="",style="solid", color="burlywood", weight=9]; 3405 -> 236[label="",style="solid", color="burlywood", weight=3]; 214[label="primEqInt (Neg Zero) (Neg vuz250)",fontsize=16,color="burlywood",shape="box"];3406[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];214 -> 3406[label="",style="solid", color="burlywood", weight=9]; 3406 -> 237[label="",style="solid", color="burlywood", weight=3]; 3407[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];214 -> 3407[label="",style="solid", color="burlywood", weight=9]; 3407 -> 238[label="",style="solid", color="burlywood", weight=3]; 216 -> 112[label="",style="dashed", color="red", weight=0]; 216[label="primMulInt vuz910 vuz3010",fontsize=16,color="magenta"];216 -> 239[label="",style="dashed", color="magenta", weight=3]; 216 -> 240[label="",style="dashed", color="magenta", weight=3]; 215[label="Integer vuz28 == vuz27",fontsize=16,color="burlywood",shape="triangle"];3408[label="vuz27/Integer vuz270",fontsize=10,color="white",style="solid",shape="box"];215 -> 3408[label="",style="solid", color="burlywood", weight=9]; 3408 -> 241[label="",style="solid", color="burlywood", weight=3]; 217 -> 242[label="",style="dashed", color="red", weight=0]; 217[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];217 -> 243[label="",style="dashed", color="magenta", weight=3]; 217 -> 244[label="",style="dashed", color="magenta", weight=3]; 218 -> 247[label="",style="dashed", color="red", weight=0]; 218[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];218 -> 248[label="",style="dashed", color="magenta", weight=3]; 218 -> 249[label="",style="dashed", color="magenta", weight=3]; 218 -> 250[label="",style="dashed", color="magenta", weight=3]; 219 -> 242[label="",style="dashed", color="red", weight=0]; 219[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];219 -> 245[label="",style="dashed", color="magenta", weight=3]; 219 -> 246[label="",style="dashed", color="magenta", weight=3]; 220 -> 247[label="",style="dashed", color="red", weight=0]; 220[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];220 -> 251[label="",style="dashed", color="magenta", weight=3]; 220 -> 252[label="",style="dashed", color="magenta", weight=3]; 220 -> 253[label="",style="dashed", color="magenta", weight=3]; 221[label="primMulNat (Succ vuz10100) (Succ vuz30100)",fontsize=16,color="black",shape="box"];221 -> 254[label="",style="solid", color="black", weight=3]; 222[label="primMulNat (Succ vuz10100) Zero",fontsize=16,color="black",shape="box"];222 -> 255[label="",style="solid", color="black", weight=3]; 223[label="primMulNat Zero (Succ vuz30100)",fontsize=16,color="black",shape="box"];223 -> 256[label="",style="solid", color="black", weight=3]; 224[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];224 -> 257[label="",style="solid", color="black", weight=3]; 225[label="primEqInt (Pos (Succ vuz2600)) (Pos (Succ vuz2500))",fontsize=16,color="black",shape="box"];225 -> 258[label="",style="solid", color="black", weight=3]; 226[label="primEqInt (Pos (Succ vuz2600)) (Pos Zero)",fontsize=16,color="black",shape="box"];226 -> 259[label="",style="solid", color="black", weight=3]; 227[label="False",fontsize=16,color="green",shape="box"];228[label="primEqInt (Pos Zero) (Pos (Succ vuz2500))",fontsize=16,color="black",shape="box"];228 -> 260[label="",style="solid", color="black", weight=3]; 229[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];229 -> 261[label="",style="solid", color="black", weight=3]; 230[label="primEqInt (Pos Zero) (Neg (Succ vuz2500))",fontsize=16,color="black",shape="box"];230 -> 262[label="",style="solid", color="black", weight=3]; 231[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];231 -> 263[label="",style="solid", color="black", weight=3]; 232[label="False",fontsize=16,color="green",shape="box"];233[label="primEqInt (Neg (Succ vuz2600)) (Neg (Succ vuz2500))",fontsize=16,color="black",shape="box"];233 -> 264[label="",style="solid", color="black", weight=3]; 234[label="primEqInt (Neg (Succ vuz2600)) (Neg Zero)",fontsize=16,color="black",shape="box"];234 -> 265[label="",style="solid", color="black", weight=3]; 235[label="primEqInt (Neg Zero) (Pos (Succ vuz2500))",fontsize=16,color="black",shape="box"];235 -> 266[label="",style="solid", color="black", weight=3]; 236[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];236 -> 267[label="",style="solid", color="black", weight=3]; 237[label="primEqInt (Neg Zero) (Neg (Succ vuz2500))",fontsize=16,color="black",shape="box"];237 -> 268[label="",style="solid", color="black", weight=3]; 238[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];238 -> 269[label="",style="solid", color="black", weight=3]; 239[label="vuz3010",fontsize=16,color="green",shape="box"];240[label="vuz910",fontsize=16,color="green",shape="box"];241[label="Integer vuz28 == Integer vuz270",fontsize=16,color="black",shape="box"];241 -> 270[label="",style="solid", color="black", weight=3]; 243 -> 41[label="",style="dashed", color="red", weight=0]; 243[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];243 -> 271[label="",style="dashed", color="magenta", weight=3]; 243 -> 272[label="",style="dashed", color="magenta", weight=3]; 244 -> 41[label="",style="dashed", color="red", weight=0]; 244[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];244 -> 273[label="",style="dashed", color="magenta", weight=3]; 244 -> 274[label="",style="dashed", color="magenta", weight=3]; 242[label="vuz29 `quot` reduce2D vuz30 (vuz23 * vuz21)",fontsize=16,color="burlywood",shape="triangle"];3409[label="vuz29/Integer vuz290",fontsize=10,color="white",style="solid",shape="box"];242 -> 3409[label="",style="solid", color="burlywood", weight=9]; 3409 -> 275[label="",style="solid", color="burlywood", weight=3]; 248 -> 39[label="",style="dashed", color="red", weight=0]; 248[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];248 -> 276[label="",style="dashed", color="magenta", weight=3]; 248 -> 277[label="",style="dashed", color="magenta", weight=3]; 249 -> 39[label="",style="dashed", color="red", weight=0]; 249[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];249 -> 278[label="",style="dashed", color="magenta", weight=3]; 249 -> 279[label="",style="dashed", color="magenta", weight=3]; 250 -> 88[label="",style="dashed", color="red", weight=0]; 250[label="vuz23 * vuz21",fontsize=16,color="magenta"];250 -> 280[label="",style="dashed", color="magenta", weight=3]; 250 -> 281[label="",style="dashed", color="magenta", weight=3]; 247[label="vuz31 `quot` reduce2D vuz33 vuz32",fontsize=16,color="black",shape="triangle"];247 -> 282[label="",style="solid", color="black", weight=3]; 245 -> 41[label="",style="dashed", color="red", weight=0]; 245[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];245 -> 283[label="",style="dashed", color="magenta", weight=3]; 245 -> 284[label="",style="dashed", color="magenta", weight=3]; 246[label="vuz23 * vuz21",fontsize=16,color="burlywood",shape="triangle"];3410[label="vuz23/Integer vuz230",fontsize=10,color="white",style="solid",shape="box"];246 -> 3410[label="",style="solid", color="burlywood", weight=9]; 3410 -> 285[label="",style="solid", color="burlywood", weight=3]; 251 -> 39[label="",style="dashed", color="red", weight=0]; 251[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];251 -> 286[label="",style="dashed", color="magenta", weight=3]; 251 -> 287[label="",style="dashed", color="magenta", weight=3]; 252 -> 88[label="",style="dashed", color="red", weight=0]; 252[label="vuz23 * vuz21",fontsize=16,color="magenta"];252 -> 288[label="",style="dashed", color="magenta", weight=3]; 252 -> 289[label="",style="dashed", color="magenta", weight=3]; 253 -> 88[label="",style="dashed", color="red", weight=0]; 253[label="vuz23 * vuz21",fontsize=16,color="magenta"];253 -> 290[label="",style="dashed", color="magenta", weight=3]; 253 -> 291[label="",style="dashed", color="magenta", weight=3]; 254 -> 89[label="",style="dashed", color="red", weight=0]; 254[label="primPlusNat (primMulNat vuz10100 (Succ vuz30100)) (Succ vuz30100)",fontsize=16,color="magenta"];254 -> 292[label="",style="dashed", color="magenta", weight=3]; 254 -> 293[label="",style="dashed", color="magenta", weight=3]; 255[label="Zero",fontsize=16,color="green",shape="box"];256[label="Zero",fontsize=16,color="green",shape="box"];257[label="Zero",fontsize=16,color="green",shape="box"];258[label="primEqNat vuz2600 vuz2500",fontsize=16,color="burlywood",shape="triangle"];3411[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];258 -> 3411[label="",style="solid", color="burlywood", weight=9]; 3411 -> 294[label="",style="solid", color="burlywood", weight=3]; 3412[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 3412[label="",style="solid", color="burlywood", weight=9]; 3412 -> 295[label="",style="solid", color="burlywood", weight=3]; 259[label="False",fontsize=16,color="green",shape="box"];260[label="False",fontsize=16,color="green",shape="box"];261[label="True",fontsize=16,color="green",shape="box"];262[label="False",fontsize=16,color="green",shape="box"];263[label="True",fontsize=16,color="green",shape="box"];264 -> 258[label="",style="dashed", color="red", weight=0]; 264[label="primEqNat vuz2600 vuz2500",fontsize=16,color="magenta"];264 -> 296[label="",style="dashed", color="magenta", weight=3]; 264 -> 297[label="",style="dashed", color="magenta", weight=3]; 265[label="False",fontsize=16,color="green",shape="box"];266[label="False",fontsize=16,color="green",shape="box"];267[label="True",fontsize=16,color="green",shape="box"];268[label="False",fontsize=16,color="green",shape="box"];269[label="True",fontsize=16,color="green",shape="box"];270 -> 175[label="",style="dashed", color="red", weight=0]; 270[label="primEqInt vuz28 vuz270",fontsize=16,color="magenta"];270 -> 298[label="",style="dashed", color="magenta", weight=3]; 270 -> 299[label="",style="dashed", color="magenta", weight=3]; 271 -> 246[label="",style="dashed", color="red", weight=0]; 271[label="vuz22 * vuz23",fontsize=16,color="magenta"];271 -> 300[label="",style="dashed", color="magenta", weight=3]; 271 -> 301[label="",style="dashed", color="magenta", weight=3]; 272 -> 246[label="",style="dashed", color="red", weight=0]; 272[label="vuz20 * vuz21",fontsize=16,color="magenta"];272 -> 302[label="",style="dashed", color="magenta", weight=3]; 273 -> 246[label="",style="dashed", color="red", weight=0]; 273[label="vuz22 * vuz23",fontsize=16,color="magenta"];273 -> 303[label="",style="dashed", color="magenta", weight=3]; 273 -> 304[label="",style="dashed", color="magenta", weight=3]; 274 -> 246[label="",style="dashed", color="red", weight=0]; 274[label="vuz20 * vuz21",fontsize=16,color="magenta"];274 -> 305[label="",style="dashed", color="magenta", weight=3]; 275[label="Integer vuz290 `quot` reduce2D vuz30 (vuz23 * vuz21)",fontsize=16,color="black",shape="box"];275 -> 306[label="",style="solid", color="black", weight=3]; 276 -> 88[label="",style="dashed", color="red", weight=0]; 276[label="vuz20 * vuz21",fontsize=16,color="magenta"];276 -> 307[label="",style="dashed", color="magenta", weight=3]; 276 -> 308[label="",style="dashed", color="magenta", weight=3]; 277 -> 88[label="",style="dashed", color="red", weight=0]; 277[label="vuz22 * vuz23",fontsize=16,color="magenta"];277 -> 309[label="",style="dashed", color="magenta", weight=3]; 277 -> 310[label="",style="dashed", color="magenta", weight=3]; 278 -> 88[label="",style="dashed", color="red", weight=0]; 278[label="vuz20 * vuz21",fontsize=16,color="magenta"];278 -> 311[label="",style="dashed", color="magenta", weight=3]; 278 -> 312[label="",style="dashed", color="magenta", weight=3]; 279 -> 88[label="",style="dashed", color="red", weight=0]; 279[label="vuz22 * vuz23",fontsize=16,color="magenta"];279 -> 313[label="",style="dashed", color="magenta", weight=3]; 279 -> 314[label="",style="dashed", color="magenta", weight=3]; 280[label="vuz21",fontsize=16,color="green",shape="box"];281[label="vuz23",fontsize=16,color="green",shape="box"];282[label="primQuotInt vuz31 (reduce2D vuz33 vuz32)",fontsize=16,color="burlywood",shape="box"];3413[label="vuz31/Pos vuz310",fontsize=10,color="white",style="solid",shape="box"];282 -> 3413[label="",style="solid", color="burlywood", weight=9]; 3413 -> 315[label="",style="solid", color="burlywood", weight=3]; 3414[label="vuz31/Neg vuz310",fontsize=10,color="white",style="solid",shape="box"];282 -> 3414[label="",style="solid", color="burlywood", weight=9]; 3414 -> 316[label="",style="solid", color="burlywood", weight=3]; 283 -> 246[label="",style="dashed", color="red", weight=0]; 283[label="vuz22 * vuz23",fontsize=16,color="magenta"];283 -> 317[label="",style="dashed", color="magenta", weight=3]; 283 -> 318[label="",style="dashed", color="magenta", weight=3]; 284 -> 246[label="",style="dashed", color="red", weight=0]; 284[label="vuz20 * vuz21",fontsize=16,color="magenta"];284 -> 319[label="",style="dashed", color="magenta", weight=3]; 285[label="Integer vuz230 * vuz21",fontsize=16,color="burlywood",shape="box"];3415[label="vuz21/Integer vuz210",fontsize=10,color="white",style="solid",shape="box"];285 -> 3415[label="",style="solid", color="burlywood", weight=9]; 3415 -> 320[label="",style="solid", color="burlywood", weight=3]; 286 -> 88[label="",style="dashed", color="red", weight=0]; 286[label="vuz20 * vuz21",fontsize=16,color="magenta"];286 -> 321[label="",style="dashed", color="magenta", weight=3]; 286 -> 322[label="",style="dashed", color="magenta", weight=3]; 287 -> 88[label="",style="dashed", color="red", weight=0]; 287[label="vuz22 * vuz23",fontsize=16,color="magenta"];287 -> 323[label="",style="dashed", color="magenta", weight=3]; 287 -> 324[label="",style="dashed", color="magenta", weight=3]; 288[label="vuz21",fontsize=16,color="green",shape="box"];289[label="vuz23",fontsize=16,color="green",shape="box"];290[label="vuz21",fontsize=16,color="green",shape="box"];291[label="vuz23",fontsize=16,color="green",shape="box"];292[label="Succ vuz30100",fontsize=16,color="green",shape="box"];293 -> 188[label="",style="dashed", color="red", weight=0]; 293[label="primMulNat vuz10100 (Succ vuz30100)",fontsize=16,color="magenta"];293 -> 325[label="",style="dashed", color="magenta", weight=3]; 293 -> 326[label="",style="dashed", color="magenta", weight=3]; 294[label="primEqNat (Succ vuz26000) vuz2500",fontsize=16,color="burlywood",shape="box"];3416[label="vuz2500/Succ vuz25000",fontsize=10,color="white",style="solid",shape="box"];294 -> 3416[label="",style="solid", color="burlywood", weight=9]; 3416 -> 327[label="",style="solid", color="burlywood", weight=3]; 3417[label="vuz2500/Zero",fontsize=10,color="white",style="solid",shape="box"];294 -> 3417[label="",style="solid", color="burlywood", weight=9]; 3417 -> 328[label="",style="solid", color="burlywood", weight=3]; 295[label="primEqNat Zero vuz2500",fontsize=16,color="burlywood",shape="box"];3418[label="vuz2500/Succ vuz25000",fontsize=10,color="white",style="solid",shape="box"];295 -> 3418[label="",style="solid", color="burlywood", weight=9]; 3418 -> 329[label="",style="solid", color="burlywood", weight=3]; 3419[label="vuz2500/Zero",fontsize=10,color="white",style="solid",shape="box"];295 -> 3419[label="",style="solid", color="burlywood", weight=9]; 3419 -> 330[label="",style="solid", color="burlywood", weight=3]; 296[label="vuz2500",fontsize=16,color="green",shape="box"];297[label="vuz2600",fontsize=16,color="green",shape="box"];298[label="vuz28",fontsize=16,color="green",shape="box"];299[label="vuz270",fontsize=16,color="green",shape="box"];300[label="vuz23",fontsize=16,color="green",shape="box"];301[label="vuz22",fontsize=16,color="green",shape="box"];302[label="vuz20",fontsize=16,color="green",shape="box"];303[label="vuz23",fontsize=16,color="green",shape="box"];304[label="vuz22",fontsize=16,color="green",shape="box"];305[label="vuz20",fontsize=16,color="green",shape="box"];306 -> 331[label="",style="dashed", color="red", weight=0]; 306[label="Integer vuz290 `quot` gcd vuz30 (vuz23 * vuz21)",fontsize=16,color="magenta"];306 -> 332[label="",style="dashed", color="magenta", weight=3]; 307[label="vuz21",fontsize=16,color="green",shape="box"];308[label="vuz20",fontsize=16,color="green",shape="box"];309[label="vuz23",fontsize=16,color="green",shape="box"];310[label="vuz22",fontsize=16,color="green",shape="box"];311[label="vuz21",fontsize=16,color="green",shape="box"];312[label="vuz20",fontsize=16,color="green",shape="box"];313[label="vuz23",fontsize=16,color="green",shape="box"];314[label="vuz22",fontsize=16,color="green",shape="box"];315[label="primQuotInt (Pos vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];315 -> 333[label="",style="solid", color="black", weight=3]; 316[label="primQuotInt (Neg vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];316 -> 334[label="",style="solid", color="black", weight=3]; 317[label="vuz23",fontsize=16,color="green",shape="box"];318[label="vuz22",fontsize=16,color="green",shape="box"];319[label="vuz20",fontsize=16,color="green",shape="box"];320[label="Integer vuz230 * Integer vuz210",fontsize=16,color="black",shape="box"];320 -> 335[label="",style="solid", color="black", weight=3]; 321[label="vuz21",fontsize=16,color="green",shape="box"];322[label="vuz20",fontsize=16,color="green",shape="box"];323[label="vuz23",fontsize=16,color="green",shape="box"];324[label="vuz22",fontsize=16,color="green",shape="box"];325[label="Succ vuz30100",fontsize=16,color="green",shape="box"];326[label="vuz10100",fontsize=16,color="green",shape="box"];327[label="primEqNat (Succ vuz26000) (Succ vuz25000)",fontsize=16,color="black",shape="box"];327 -> 336[label="",style="solid", color="black", weight=3]; 328[label="primEqNat (Succ vuz26000) Zero",fontsize=16,color="black",shape="box"];328 -> 337[label="",style="solid", color="black", weight=3]; 329[label="primEqNat Zero (Succ vuz25000)",fontsize=16,color="black",shape="box"];329 -> 338[label="",style="solid", color="black", weight=3]; 330[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];330 -> 339[label="",style="solid", color="black", weight=3]; 332 -> 246[label="",style="dashed", color="red", weight=0]; 332[label="vuz23 * vuz21",fontsize=16,color="magenta"];331[label="Integer vuz290 `quot` gcd vuz30 vuz38",fontsize=16,color="black",shape="triangle"];331 -> 340[label="",style="solid", color="black", weight=3]; 333 -> 432[label="",style="dashed", color="red", weight=0]; 333[label="primQuotInt (Pos vuz310) (gcd vuz33 vuz32)",fontsize=16,color="magenta"];333 -> 433[label="",style="dashed", color="magenta", weight=3]; 334 -> 460[label="",style="dashed", color="red", weight=0]; 334[label="primQuotInt (Neg vuz310) (gcd vuz33 vuz32)",fontsize=16,color="magenta"];334 -> 461[label="",style="dashed", color="magenta", weight=3]; 335[label="Integer (primMulInt vuz230 vuz210)",fontsize=16,color="green",shape="box"];335 -> 343[label="",style="dashed", color="green", weight=3]; 336 -> 258[label="",style="dashed", color="red", weight=0]; 336[label="primEqNat vuz26000 vuz25000",fontsize=16,color="magenta"];336 -> 344[label="",style="dashed", color="magenta", weight=3]; 336 -> 345[label="",style="dashed", color="magenta", weight=3]; 337[label="False",fontsize=16,color="green",shape="box"];338[label="False",fontsize=16,color="green",shape="box"];339[label="True",fontsize=16,color="green",shape="box"];340[label="Integer vuz290 `quot` gcd3 vuz30 vuz38",fontsize=16,color="black",shape="box"];340 -> 346[label="",style="solid", color="black", weight=3]; 433[label="gcd vuz33 vuz32",fontsize=16,color="black",shape="triangle"];433 -> 449[label="",style="solid", color="black", weight=3]; 432[label="primQuotInt (Pos vuz310) vuz56",fontsize=16,color="burlywood",shape="triangle"];3420[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];432 -> 3420[label="",style="solid", color="burlywood", weight=9]; 3420 -> 450[label="",style="solid", color="burlywood", weight=3]; 3421[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];432 -> 3421[label="",style="solid", color="burlywood", weight=9]; 3421 -> 451[label="",style="solid", color="burlywood", weight=3]; 461 -> 433[label="",style="dashed", color="red", weight=0]; 461[label="gcd vuz33 vuz32",fontsize=16,color="magenta"];460[label="primQuotInt (Neg vuz310) vuz59",fontsize=16,color="burlywood",shape="triangle"];3422[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];460 -> 3422[label="",style="solid", color="burlywood", weight=9]; 3422 -> 477[label="",style="solid", color="burlywood", weight=3]; 3423[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];460 -> 3423[label="",style="solid", color="burlywood", weight=9]; 3423 -> 478[label="",style="solid", color="burlywood", weight=3]; 343 -> 112[label="",style="dashed", color="red", weight=0]; 343[label="primMulInt vuz230 vuz210",fontsize=16,color="magenta"];343 -> 349[label="",style="dashed", color="magenta", weight=3]; 343 -> 350[label="",style="dashed", color="magenta", weight=3]; 344[label="vuz25000",fontsize=16,color="green",shape="box"];345[label="vuz26000",fontsize=16,color="green",shape="box"];346 -> 351[label="",style="dashed", color="red", weight=0]; 346[label="Integer vuz290 `quot` gcd2 (vuz30 == fromInt (Pos Zero)) vuz30 vuz38",fontsize=16,color="magenta"];346 -> 352[label="",style="dashed", color="magenta", weight=3]; 449[label="gcd3 vuz33 vuz32",fontsize=16,color="black",shape="box"];449 -> 455[label="",style="solid", color="black", weight=3]; 450[label="primQuotInt (Pos vuz310) (Pos vuz560)",fontsize=16,color="burlywood",shape="box"];3424[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];450 -> 3424[label="",style="solid", color="burlywood", weight=9]; 3424 -> 456[label="",style="solid", color="burlywood", weight=3]; 3425[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];450 -> 3425[label="",style="solid", color="burlywood", weight=9]; 3425 -> 457[label="",style="solid", color="burlywood", weight=3]; 451[label="primQuotInt (Pos vuz310) (Neg vuz560)",fontsize=16,color="burlywood",shape="box"];3426[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];451 -> 3426[label="",style="solid", color="burlywood", weight=9]; 3426 -> 458[label="",style="solid", color="burlywood", weight=3]; 3427[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];451 -> 3427[label="",style="solid", color="burlywood", weight=9]; 3427 -> 459[label="",style="solid", color="burlywood", weight=3]; 477[label="primQuotInt (Neg vuz310) (Pos vuz590)",fontsize=16,color="burlywood",shape="box"];3428[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];477 -> 3428[label="",style="solid", color="burlywood", weight=9]; 3428 -> 481[label="",style="solid", color="burlywood", weight=3]; 3429[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];477 -> 3429[label="",style="solid", color="burlywood", weight=9]; 3429 -> 482[label="",style="solid", color="burlywood", weight=3]; 478[label="primQuotInt (Neg vuz310) (Neg vuz590)",fontsize=16,color="burlywood",shape="box"];3430[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];478 -> 3430[label="",style="solid", color="burlywood", weight=9]; 3430 -> 483[label="",style="solid", color="burlywood", weight=3]; 3431[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];478 -> 3431[label="",style="solid", color="burlywood", weight=9]; 3431 -> 484[label="",style="solid", color="burlywood", weight=3]; 349[label="vuz210",fontsize=16,color="green",shape="box"];350[label="vuz230",fontsize=16,color="green",shape="box"];352 -> 13[label="",style="dashed", color="red", weight=0]; 352[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];351[label="Integer vuz290 `quot` gcd2 (vuz30 == vuz39) vuz30 vuz38",fontsize=16,color="burlywood",shape="triangle"];3432[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];351 -> 3432[label="",style="solid", color="burlywood", weight=9]; 3432 -> 357[label="",style="solid", color="burlywood", weight=3]; 455 -> 479[label="",style="dashed", color="red", weight=0]; 455[label="gcd2 (vuz33 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];455 -> 480[label="",style="dashed", color="magenta", weight=3]; 456[label="primQuotInt (Pos vuz310) (Pos (Succ vuz5600))",fontsize=16,color="black",shape="box"];456 -> 485[label="",style="solid", color="black", weight=3]; 457[label="primQuotInt (Pos vuz310) (Pos Zero)",fontsize=16,color="black",shape="box"];457 -> 486[label="",style="solid", color="black", weight=3]; 458[label="primQuotInt (Pos vuz310) (Neg (Succ vuz5600))",fontsize=16,color="black",shape="box"];458 -> 487[label="",style="solid", color="black", weight=3]; 459[label="primQuotInt (Pos vuz310) (Neg Zero)",fontsize=16,color="black",shape="box"];459 -> 488[label="",style="solid", color="black", weight=3]; 481[label="primQuotInt (Neg vuz310) (Pos (Succ vuz5900))",fontsize=16,color="black",shape="box"];481 -> 495[label="",style="solid", color="black", weight=3]; 482[label="primQuotInt (Neg vuz310) (Pos Zero)",fontsize=16,color="black",shape="box"];482 -> 496[label="",style="solid", color="black", weight=3]; 483[label="primQuotInt (Neg vuz310) (Neg (Succ vuz5900))",fontsize=16,color="black",shape="box"];483 -> 497[label="",style="solid", color="black", weight=3]; 484[label="primQuotInt (Neg vuz310) (Neg Zero)",fontsize=16,color="black",shape="box"];484 -> 498[label="",style="solid", color="black", weight=3]; 357[label="Integer vuz290 `quot` gcd2 (Integer vuz300 == vuz39) (Integer vuz300) vuz38",fontsize=16,color="burlywood",shape="box"];3433[label="vuz39/Integer vuz390",fontsize=10,color="white",style="solid",shape="box"];357 -> 3433[label="",style="solid", color="burlywood", weight=9]; 3433 -> 366[label="",style="solid", color="burlywood", weight=3]; 480 -> 156[label="",style="dashed", color="red", weight=0]; 480[label="vuz33 == fromInt (Pos Zero)",fontsize=16,color="magenta"];480 -> 489[label="",style="dashed", color="magenta", weight=3]; 480 -> 490[label="",style="dashed", color="magenta", weight=3]; 479[label="gcd2 vuz60 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];3434[label="vuz60/False",fontsize=10,color="white",style="solid",shape="box"];479 -> 3434[label="",style="solid", color="burlywood", weight=9]; 3434 -> 491[label="",style="solid", color="burlywood", weight=3]; 3435[label="vuz60/True",fontsize=10,color="white",style="solid",shape="box"];479 -> 3435[label="",style="solid", color="burlywood", weight=9]; 3435 -> 492[label="",style="solid", color="burlywood", weight=3]; 485[label="Pos (primDivNatS vuz310 (Succ vuz5600))",fontsize=16,color="green",shape="box"];485 -> 499[label="",style="dashed", color="green", weight=3]; 486[label="error []",fontsize=16,color="black",shape="triangle"];486 -> 500[label="",style="solid", color="black", weight=3]; 487[label="Neg (primDivNatS vuz310 (Succ vuz5600))",fontsize=16,color="green",shape="box"];487 -> 501[label="",style="dashed", color="green", weight=3]; 488 -> 486[label="",style="dashed", color="red", weight=0]; 488[label="error []",fontsize=16,color="magenta"];495[label="Neg (primDivNatS vuz310 (Succ vuz5900))",fontsize=16,color="green",shape="box"];495 -> 506[label="",style="dashed", color="green", weight=3]; 496 -> 486[label="",style="dashed", color="red", weight=0]; 496[label="error []",fontsize=16,color="magenta"];497[label="Pos (primDivNatS vuz310 (Succ vuz5900))",fontsize=16,color="green",shape="box"];497 -> 507[label="",style="dashed", color="green", weight=3]; 498 -> 486[label="",style="dashed", color="red", weight=0]; 498[label="error []",fontsize=16,color="magenta"];366[label="Integer vuz290 `quot` gcd2 (Integer vuz300 == Integer vuz390) (Integer vuz300) vuz38",fontsize=16,color="black",shape="box"];366 -> 371[label="",style="solid", color="black", weight=3]; 489[label="vuz33",fontsize=16,color="green",shape="box"];490 -> 12[label="",style="dashed", color="red", weight=0]; 490[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];491[label="gcd2 False vuz33 vuz32",fontsize=16,color="black",shape="box"];491 -> 502[label="",style="solid", color="black", weight=3]; 492[label="gcd2 True vuz33 vuz32",fontsize=16,color="black",shape="box"];492 -> 503[label="",style="solid", color="black", weight=3]; 499[label="primDivNatS vuz310 (Succ vuz5600)",fontsize=16,color="burlywood",shape="triangle"];3436[label="vuz310/Succ vuz3100",fontsize=10,color="white",style="solid",shape="box"];499 -> 3436[label="",style="solid", color="burlywood", weight=9]; 3436 -> 508[label="",style="solid", color="burlywood", weight=3]; 3437[label="vuz310/Zero",fontsize=10,color="white",style="solid",shape="box"];499 -> 3437[label="",style="solid", color="burlywood", weight=9]; 3437 -> 509[label="",style="solid", color="burlywood", weight=3]; 500[label="error []",fontsize=16,color="red",shape="box"];501 -> 499[label="",style="dashed", color="red", weight=0]; 501[label="primDivNatS vuz310 (Succ vuz5600)",fontsize=16,color="magenta"];501 -> 510[label="",style="dashed", color="magenta", weight=3]; 506 -> 499[label="",style="dashed", color="red", weight=0]; 506[label="primDivNatS vuz310 (Succ vuz5900)",fontsize=16,color="magenta"];506 -> 514[label="",style="dashed", color="magenta", weight=3]; 506 -> 515[label="",style="dashed", color="magenta", weight=3]; 507 -> 499[label="",style="dashed", color="red", weight=0]; 507[label="primDivNatS vuz310 (Succ vuz5900)",fontsize=16,color="magenta"];507 -> 516[label="",style="dashed", color="magenta", weight=3]; 507 -> 517[label="",style="dashed", color="magenta", weight=3]; 371 -> 378[label="",style="dashed", color="red", weight=0]; 371[label="Integer vuz290 `quot` gcd2 (primEqInt vuz300 vuz390) (Integer vuz300) vuz38",fontsize=16,color="magenta"];371 -> 379[label="",style="dashed", color="magenta", weight=3]; 502[label="gcd0 vuz33 vuz32",fontsize=16,color="black",shape="triangle"];502 -> 511[label="",style="solid", color="black", weight=3]; 503 -> 512[label="",style="dashed", color="red", weight=0]; 503[label="gcd1 (vuz32 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];503 -> 513[label="",style="dashed", color="magenta", weight=3]; 508[label="primDivNatS (Succ vuz3100) (Succ vuz5600)",fontsize=16,color="black",shape="box"];508 -> 518[label="",style="solid", color="black", weight=3]; 509[label="primDivNatS Zero (Succ vuz5600)",fontsize=16,color="black",shape="box"];509 -> 519[label="",style="solid", color="black", weight=3]; 510[label="vuz5600",fontsize=16,color="green",shape="box"];514[label="vuz310",fontsize=16,color="green",shape="box"];515[label="vuz5900",fontsize=16,color="green",shape="box"];516[label="vuz310",fontsize=16,color="green",shape="box"];517[label="vuz5900",fontsize=16,color="green",shape="box"];379 -> 175[label="",style="dashed", color="red", weight=0]; 379[label="primEqInt vuz300 vuz390",fontsize=16,color="magenta"];379 -> 390[label="",style="dashed", color="magenta", weight=3]; 379 -> 391[label="",style="dashed", color="magenta", weight=3]; 378[label="Integer vuz290 `quot` gcd2 vuz48 (Integer vuz300) vuz38",fontsize=16,color="burlywood",shape="triangle"];3438[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];378 -> 3438[label="",style="solid", color="burlywood", weight=9]; 3438 -> 392[label="",style="solid", color="burlywood", weight=3]; 3439[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];378 -> 3439[label="",style="solid", color="burlywood", weight=9]; 3439 -> 393[label="",style="solid", color="burlywood", weight=3]; 511[label="gcd0Gcd' (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];511 -> 520[label="",style="solid", color="black", weight=3]; 513 -> 156[label="",style="dashed", color="red", weight=0]; 513[label="vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];513 -> 521[label="",style="dashed", color="magenta", weight=3]; 513 -> 522[label="",style="dashed", color="magenta", weight=3]; 512[label="gcd1 vuz63 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];3440[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];512 -> 3440[label="",style="solid", color="burlywood", weight=9]; 3440 -> 523[label="",style="solid", color="burlywood", weight=3]; 3441[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];512 -> 3441[label="",style="solid", color="burlywood", weight=9]; 3441 -> 524[label="",style="solid", color="burlywood", weight=3]; 518[label="primDivNatS0 vuz3100 vuz5600 (primGEqNatS vuz3100 vuz5600)",fontsize=16,color="burlywood",shape="box"];3442[label="vuz3100/Succ vuz31000",fontsize=10,color="white",style="solid",shape="box"];518 -> 3442[label="",style="solid", color="burlywood", weight=9]; 3442 -> 527[label="",style="solid", color="burlywood", weight=3]; 3443[label="vuz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];518 -> 3443[label="",style="solid", color="burlywood", weight=9]; 3443 -> 528[label="",style="solid", color="burlywood", weight=3]; 519[label="Zero",fontsize=16,color="green",shape="box"];390[label="vuz300",fontsize=16,color="green",shape="box"];391[label="vuz390",fontsize=16,color="green",shape="box"];392[label="Integer vuz290 `quot` gcd2 False (Integer vuz300) vuz38",fontsize=16,color="black",shape="box"];392 -> 400[label="",style="solid", color="black", weight=3]; 393[label="Integer vuz290 `quot` gcd2 True (Integer vuz300) vuz38",fontsize=16,color="black",shape="box"];393 -> 401[label="",style="solid", color="black", weight=3]; 520[label="gcd0Gcd'2 (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];520 -> 529[label="",style="solid", color="black", weight=3]; 521[label="vuz32",fontsize=16,color="green",shape="box"];522 -> 12[label="",style="dashed", color="red", weight=0]; 522[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];523[label="gcd1 False vuz33 vuz32",fontsize=16,color="black",shape="box"];523 -> 530[label="",style="solid", color="black", weight=3]; 524[label="gcd1 True vuz33 vuz32",fontsize=16,color="black",shape="box"];524 -> 531[label="",style="solid", color="black", weight=3]; 527[label="primDivNatS0 (Succ vuz31000) vuz5600 (primGEqNatS (Succ vuz31000) vuz5600)",fontsize=16,color="burlywood",shape="box"];3444[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];527 -> 3444[label="",style="solid", color="burlywood", weight=9]; 3444 -> 537[label="",style="solid", color="burlywood", weight=3]; 3445[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];527 -> 3445[label="",style="solid", color="burlywood", weight=9]; 3445 -> 538[label="",style="solid", color="burlywood", weight=3]; 528[label="primDivNatS0 Zero vuz5600 (primGEqNatS Zero vuz5600)",fontsize=16,color="burlywood",shape="box"];3446[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];528 -> 3446[label="",style="solid", color="burlywood", weight=9]; 3446 -> 539[label="",style="solid", color="burlywood", weight=3]; 3447[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];528 -> 3447[label="",style="solid", color="burlywood", weight=9]; 3447 -> 540[label="",style="solid", color="burlywood", weight=3]; 400[label="Integer vuz290 `quot` gcd0 (Integer vuz300) vuz38",fontsize=16,color="black",shape="triangle"];400 -> 408[label="",style="solid", color="black", weight=3]; 401 -> 409[label="",style="dashed", color="red", weight=0]; 401[label="Integer vuz290 `quot` gcd1 (vuz38 == fromInt (Pos Zero)) (Integer vuz300) vuz38",fontsize=16,color="magenta"];401 -> 410[label="",style="dashed", color="magenta", weight=3]; 529 -> 541[label="",style="dashed", color="red", weight=0]; 529[label="gcd0Gcd'1 (abs vuz32 == fromInt (Pos Zero)) (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];529 -> 542[label="",style="dashed", color="magenta", weight=3]; 530 -> 502[label="",style="dashed", color="red", weight=0]; 530[label="gcd0 vuz33 vuz32",fontsize=16,color="magenta"];531 -> 486[label="",style="dashed", color="red", weight=0]; 531[label="error []",fontsize=16,color="magenta"];537[label="primDivNatS0 (Succ vuz31000) (Succ vuz56000) (primGEqNatS (Succ vuz31000) (Succ vuz56000))",fontsize=16,color="black",shape="box"];537 -> 543[label="",style="solid", color="black", weight=3]; 538[label="primDivNatS0 (Succ vuz31000) Zero (primGEqNatS (Succ vuz31000) Zero)",fontsize=16,color="black",shape="box"];538 -> 544[label="",style="solid", color="black", weight=3]; 539[label="primDivNatS0 Zero (Succ vuz56000) (primGEqNatS Zero (Succ vuz56000))",fontsize=16,color="black",shape="box"];539 -> 545[label="",style="solid", color="black", weight=3]; 540[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];540 -> 546[label="",style="solid", color="black", weight=3]; 408[label="Integer vuz290 `quot` gcd0Gcd' (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="black",shape="box"];408 -> 419[label="",style="solid", color="black", weight=3]; 410 -> 13[label="",style="dashed", color="red", weight=0]; 410[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];409[label="Integer vuz290 `quot` gcd1 (vuz38 == vuz53) (Integer vuz300) vuz38",fontsize=16,color="burlywood",shape="triangle"];3448[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];409 -> 3448[label="",style="solid", color="burlywood", weight=9]; 3448 -> 420[label="",style="solid", color="burlywood", weight=3]; 542 -> 156[label="",style="dashed", color="red", weight=0]; 542[label="abs vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];542 -> 547[label="",style="dashed", color="magenta", weight=3]; 542 -> 548[label="",style="dashed", color="magenta", weight=3]; 541[label="gcd0Gcd'1 vuz66 (abs vuz33) (abs vuz32)",fontsize=16,color="burlywood",shape="triangle"];3449[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];541 -> 3449[label="",style="solid", color="burlywood", weight=9]; 3449 -> 549[label="",style="solid", color="burlywood", weight=3]; 3450[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];541 -> 3450[label="",style="solid", color="burlywood", weight=9]; 3450 -> 550[label="",style="solid", color="burlywood", weight=3]; 543 -> 1301[label="",style="dashed", color="red", weight=0]; 543[label="primDivNatS0 (Succ vuz31000) (Succ vuz56000) (primGEqNatS vuz31000 vuz56000)",fontsize=16,color="magenta"];543 -> 1302[label="",style="dashed", color="magenta", weight=3]; 543 -> 1303[label="",style="dashed", color="magenta", weight=3]; 543 -> 1304[label="",style="dashed", color="magenta", weight=3]; 543 -> 1305[label="",style="dashed", color="magenta", weight=3]; 544[label="primDivNatS0 (Succ vuz31000) Zero True",fontsize=16,color="black",shape="box"];544 -> 556[label="",style="solid", color="black", weight=3]; 545[label="primDivNatS0 Zero (Succ vuz56000) False",fontsize=16,color="black",shape="box"];545 -> 557[label="",style="solid", color="black", weight=3]; 546[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];546 -> 558[label="",style="solid", color="black", weight=3]; 419[label="Integer vuz290 `quot` gcd0Gcd'2 (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="black",shape="box"];419 -> 426[label="",style="solid", color="black", weight=3]; 420[label="Integer vuz290 `quot` gcd1 (Integer vuz380 == vuz53) (Integer vuz300) (Integer vuz380)",fontsize=16,color="burlywood",shape="box"];3451[label="vuz53/Integer vuz530",fontsize=10,color="white",style="solid",shape="box"];420 -> 3451[label="",style="solid", color="burlywood", weight=9]; 3451 -> 427[label="",style="solid", color="burlywood", weight=3]; 547[label="abs vuz32",fontsize=16,color="black",shape="triangle"];547 -> 559[label="",style="solid", color="black", weight=3]; 548 -> 12[label="",style="dashed", color="red", weight=0]; 548[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];549[label="gcd0Gcd'1 False (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];549 -> 560[label="",style="solid", color="black", weight=3]; 550[label="gcd0Gcd'1 True (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];550 -> 561[label="",style="solid", color="black", weight=3]; 1302[label="vuz31000",fontsize=16,color="green",shape="box"];1303[label="vuz56000",fontsize=16,color="green",shape="box"];1304[label="vuz31000",fontsize=16,color="green",shape="box"];1305[label="vuz56000",fontsize=16,color="green",shape="box"];1301[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz99 vuz100)",fontsize=16,color="burlywood",shape="triangle"];3452[label="vuz99/Succ vuz990",fontsize=10,color="white",style="solid",shape="box"];1301 -> 3452[label="",style="solid", color="burlywood", weight=9]; 3452 -> 1342[label="",style="solid", color="burlywood", weight=3]; 3453[label="vuz99/Zero",fontsize=10,color="white",style="solid",shape="box"];1301 -> 3453[label="",style="solid", color="burlywood", weight=9]; 3453 -> 1343[label="",style="solid", color="burlywood", weight=3]; 556[label="Succ (primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];556 -> 569[label="",style="dashed", color="green", weight=3]; 557[label="Zero",fontsize=16,color="green",shape="box"];558[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];558 -> 570[label="",style="dashed", color="green", weight=3]; 426 -> 493[label="",style="dashed", color="red", weight=0]; 426[label="Integer vuz290 `quot` gcd0Gcd'1 (abs vuz38 == fromInt (Pos Zero)) (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="magenta"];426 -> 494[label="",style="dashed", color="magenta", weight=3]; 427[label="Integer vuz290 `quot` gcd1 (Integer vuz380 == Integer vuz530) (Integer vuz300) (Integer vuz380)",fontsize=16,color="black",shape="box"];427 -> 504[label="",style="solid", color="black", weight=3]; 559[label="absReal vuz32",fontsize=16,color="black",shape="box"];559 -> 571[label="",style="solid", color="black", weight=3]; 560 -> 572[label="",style="dashed", color="red", weight=0]; 560[label="gcd0Gcd'0 (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];560 -> 573[label="",style="dashed", color="magenta", weight=3]; 560 -> 574[label="",style="dashed", color="magenta", weight=3]; 561 -> 547[label="",style="dashed", color="red", weight=0]; 561[label="abs vuz33",fontsize=16,color="magenta"];561 -> 575[label="",style="dashed", color="magenta", weight=3]; 1342[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) vuz100)",fontsize=16,color="burlywood",shape="box"];3454[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1342 -> 3454[label="",style="solid", color="burlywood", weight=9]; 3454 -> 1377[label="",style="solid", color="burlywood", weight=3]; 3455[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1342 -> 3455[label="",style="solid", color="burlywood", weight=9]; 3455 -> 1378[label="",style="solid", color="burlywood", weight=3]; 1343[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero vuz100)",fontsize=16,color="burlywood",shape="box"];3456[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1343 -> 3456[label="",style="solid", color="burlywood", weight=9]; 3456 -> 1379[label="",style="solid", color="burlywood", weight=3]; 3457[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1343 -> 3457[label="",style="solid", color="burlywood", weight=9]; 3457 -> 1380[label="",style="solid", color="burlywood", weight=3]; 569 -> 499[label="",style="dashed", color="red", weight=0]; 569[label="primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero)",fontsize=16,color="magenta"];569 -> 580[label="",style="dashed", color="magenta", weight=3]; 569 -> 581[label="",style="dashed", color="magenta", weight=3]; 570 -> 499[label="",style="dashed", color="red", weight=0]; 570[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];570 -> 582[label="",style="dashed", color="magenta", weight=3]; 570 -> 583[label="",style="dashed", color="magenta", weight=3]; 494 -> 13[label="",style="dashed", color="red", weight=0]; 494[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];493[label="Integer vuz290 `quot` gcd0Gcd'1 (abs vuz38 == vuz62) (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="black",shape="triangle"];493 -> 505[label="",style="solid", color="black", weight=3]; 504 -> 525[label="",style="dashed", color="red", weight=0]; 504[label="Integer vuz290 `quot` gcd1 (primEqInt vuz380 vuz530) (Integer vuz300) (Integer vuz380)",fontsize=16,color="magenta"];504 -> 526[label="",style="dashed", color="magenta", weight=3]; 571[label="absReal2 vuz32",fontsize=16,color="black",shape="box"];571 -> 584[label="",style="solid", color="black", weight=3]; 573 -> 547[label="",style="dashed", color="red", weight=0]; 573[label="abs vuz33",fontsize=16,color="magenta"];573 -> 585[label="",style="dashed", color="magenta", weight=3]; 574 -> 547[label="",style="dashed", color="red", weight=0]; 574[label="abs vuz32",fontsize=16,color="magenta"];572[label="gcd0Gcd'0 vuz71 vuz70",fontsize=16,color="black",shape="triangle"];572 -> 586[label="",style="solid", color="black", weight=3]; 575[label="vuz33",fontsize=16,color="green",shape="box"];1377[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) (Succ vuz1000))",fontsize=16,color="black",shape="box"];1377 -> 1383[label="",style="solid", color="black", weight=3]; 1378[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) Zero)",fontsize=16,color="black",shape="box"];1378 -> 1384[label="",style="solid", color="black", weight=3]; 1379[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero (Succ vuz1000))",fontsize=16,color="black",shape="box"];1379 -> 1385[label="",style="solid", color="black", weight=3]; 1380[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1380 -> 1386[label="",style="solid", color="black", weight=3]; 580[label="primMinusNatS (Succ vuz31000) Zero",fontsize=16,color="black",shape="triangle"];580 -> 595[label="",style="solid", color="black", weight=3]; 581[label="Zero",fontsize=16,color="green",shape="box"];582[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];582 -> 596[label="",style="solid", color="black", weight=3]; 583[label="Zero",fontsize=16,color="green",shape="box"];505[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal vuz38 == vuz62) (abs (Integer vuz300)) (absReal vuz38)",fontsize=16,color="black",shape="box"];505 -> 532[label="",style="solid", color="black", weight=3]; 526 -> 175[label="",style="dashed", color="red", weight=0]; 526[label="primEqInt vuz380 vuz530",fontsize=16,color="magenta"];526 -> 533[label="",style="dashed", color="magenta", weight=3]; 526 -> 534[label="",style="dashed", color="magenta", weight=3]; 525[label="Integer vuz290 `quot` gcd1 vuz65 (Integer vuz300) (Integer vuz380)",fontsize=16,color="burlywood",shape="triangle"];3458[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];525 -> 3458[label="",style="solid", color="burlywood", weight=9]; 3458 -> 535[label="",style="solid", color="burlywood", weight=3]; 3459[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];525 -> 3459[label="",style="solid", color="burlywood", weight=9]; 3459 -> 536[label="",style="solid", color="burlywood", weight=3]; 584 -> 597[label="",style="dashed", color="red", weight=0]; 584[label="absReal1 vuz32 (vuz32 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];584 -> 598[label="",style="dashed", color="magenta", weight=3]; 585[label="vuz33",fontsize=16,color="green",shape="box"];586[label="gcd0Gcd' vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];586 -> 599[label="",style="solid", color="black", weight=3]; 1383 -> 1301[label="",style="dashed", color="red", weight=0]; 1383[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz990 vuz1000)",fontsize=16,color="magenta"];1383 -> 1389[label="",style="dashed", color="magenta", weight=3]; 1383 -> 1390[label="",style="dashed", color="magenta", weight=3]; 1384[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="black",shape="triangle"];1384 -> 1391[label="",style="solid", color="black", weight=3]; 1385[label="primDivNatS0 (Succ vuz97) (Succ vuz98) False",fontsize=16,color="black",shape="box"];1385 -> 1392[label="",style="solid", color="black", weight=3]; 1386 -> 1384[label="",style="dashed", color="red", weight=0]; 1386[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="magenta"];595[label="Succ vuz31000",fontsize=16,color="green",shape="box"];596[label="Zero",fontsize=16,color="green",shape="box"];532[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal2 vuz38 == vuz62) (abs (Integer vuz300)) (absReal2 vuz38)",fontsize=16,color="black",shape="box"];532 -> 551[label="",style="solid", color="black", weight=3]; 533[label="vuz380",fontsize=16,color="green",shape="box"];534[label="vuz530",fontsize=16,color="green",shape="box"];535[label="Integer vuz290 `quot` gcd1 False (Integer vuz300) (Integer vuz380)",fontsize=16,color="black",shape="box"];535 -> 552[label="",style="solid", color="black", weight=3]; 536[label="Integer vuz290 `quot` gcd1 True (Integer vuz300) (Integer vuz380)",fontsize=16,color="black",shape="box"];536 -> 553[label="",style="solid", color="black", weight=3]; 598 -> 12[label="",style="dashed", color="red", weight=0]; 598[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];597[label="absReal1 vuz32 (vuz32 >= vuz72)",fontsize=16,color="black",shape="triangle"];597 -> 606[label="",style="solid", color="black", weight=3]; 599[label="gcd0Gcd'2 vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];599 -> 608[label="",style="solid", color="black", weight=3]; 1389[label="vuz990",fontsize=16,color="green",shape="box"];1390[label="vuz1000",fontsize=16,color="green",shape="box"];1391[label="Succ (primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98)))",fontsize=16,color="green",shape="box"];1391 -> 1430[label="",style="dashed", color="green", weight=3]; 1392[label="Zero",fontsize=16,color="green",shape="box"];551 -> 562[label="",style="dashed", color="red", weight=0]; 551[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];551 -> 563[label="",style="dashed", color="magenta", weight=3]; 551 -> 564[label="",style="dashed", color="magenta", weight=3]; 552 -> 400[label="",style="dashed", color="red", weight=0]; 552[label="Integer vuz290 `quot` gcd0 (Integer vuz300) (Integer vuz380)",fontsize=16,color="magenta"];552 -> 587[label="",style="dashed", color="magenta", weight=3]; 553[label="Integer vuz290 `quot` error []",fontsize=16,color="black",shape="box"];553 -> 588[label="",style="solid", color="black", weight=3]; 606[label="absReal1 vuz32 (compare vuz32 vuz72 /= LT)",fontsize=16,color="black",shape="box"];606 -> 617[label="",style="solid", color="black", weight=3]; 608 -> 619[label="",style="dashed", color="red", weight=0]; 608[label="gcd0Gcd'1 (vuz71 `rem` vuz70 == fromInt (Pos Zero)) vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="magenta"];608 -> 620[label="",style="dashed", color="magenta", weight=3]; 1430 -> 499[label="",style="dashed", color="red", weight=0]; 1430[label="primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98))",fontsize=16,color="magenta"];1430 -> 1465[label="",style="dashed", color="magenta", weight=3]; 1430 -> 1466[label="",style="dashed", color="magenta", weight=3]; 563 -> 13[label="",style="dashed", color="red", weight=0]; 563[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];564 -> 13[label="",style="dashed", color="red", weight=0]; 564[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];562[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= vuz69) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (vuz38 >= vuz68))",fontsize=16,color="black",shape="triangle"];562 -> 589[label="",style="solid", color="black", weight=3]; 587[label="Integer vuz380",fontsize=16,color="green",shape="box"];588[label="error []",fontsize=16,color="red",shape="box"];617[label="absReal1 vuz32 (not (compare vuz32 vuz72 == LT))",fontsize=16,color="black",shape="box"];617 -> 628[label="",style="solid", color="black", weight=3]; 620 -> 156[label="",style="dashed", color="red", weight=0]; 620[label="vuz71 `rem` vuz70 == fromInt (Pos Zero)",fontsize=16,color="magenta"];620 -> 629[label="",style="dashed", color="magenta", weight=3]; 620 -> 630[label="",style="dashed", color="magenta", weight=3]; 619[label="gcd0Gcd'1 vuz73 vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="burlywood",shape="triangle"];3460[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];619 -> 3460[label="",style="solid", color="burlywood", weight=9]; 3460 -> 631[label="",style="solid", color="burlywood", weight=3]; 3461[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];619 -> 3461[label="",style="solid", color="burlywood", weight=9]; 3461 -> 632[label="",style="solid", color="burlywood", weight=3]; 1465 -> 1025[label="",style="dashed", color="red", weight=0]; 1465[label="primMinusNatS (Succ vuz97) (Succ vuz98)",fontsize=16,color="magenta"];1465 -> 1502[label="",style="dashed", color="magenta", weight=3]; 1465 -> 1503[label="",style="dashed", color="magenta", weight=3]; 1466[label="Succ vuz98",fontsize=16,color="green",shape="box"];589[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (compare vuz38 vuz69 /= LT) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (compare vuz38 vuz69 /= LT))",fontsize=16,color="black",shape="box"];589 -> 607[label="",style="solid", color="black", weight=3]; 628[label="absReal1 vuz32 (not (primCmpInt vuz32 vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3462[label="vuz32/Pos vuz320",fontsize=10,color="white",style="solid",shape="box"];628 -> 3462[label="",style="solid", color="burlywood", weight=9]; 3462 -> 641[label="",style="solid", color="burlywood", weight=3]; 3463[label="vuz32/Neg vuz320",fontsize=10,color="white",style="solid",shape="box"];628 -> 3463[label="",style="solid", color="burlywood", weight=9]; 3463 -> 642[label="",style="solid", color="burlywood", weight=3]; 629[label="vuz71 `rem` vuz70",fontsize=16,color="black",shape="triangle"];629 -> 643[label="",style="solid", color="black", weight=3]; 630 -> 12[label="",style="dashed", color="red", weight=0]; 630[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];631[label="gcd0Gcd'1 False vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];631 -> 644[label="",style="solid", color="black", weight=3]; 632[label="gcd0Gcd'1 True vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];632 -> 645[label="",style="solid", color="black", weight=3]; 1502[label="Succ vuz97",fontsize=16,color="green",shape="box"];1503[label="Succ vuz98",fontsize=16,color="green",shape="box"];1025[label="primMinusNatS vuz88 vuz89",fontsize=16,color="burlywood",shape="triangle"];3464[label="vuz88/Succ vuz880",fontsize=10,color="white",style="solid",shape="box"];1025 -> 3464[label="",style="solid", color="burlywood", weight=9]; 3464 -> 1034[label="",style="solid", color="burlywood", weight=3]; 3465[label="vuz88/Zero",fontsize=10,color="white",style="solid",shape="box"];1025 -> 3465[label="",style="solid", color="burlywood", weight=9]; 3465 -> 1035[label="",style="solid", color="burlywood", weight=3]; 607[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (not (compare vuz38 vuz69 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (not (compare vuz38 vuz69 == LT)))",fontsize=16,color="burlywood",shape="box"];3466[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];607 -> 3466[label="",style="solid", color="burlywood", weight=9]; 3466 -> 618[label="",style="solid", color="burlywood", weight=3]; 641[label="absReal1 (Pos vuz320) (not (primCmpInt (Pos vuz320) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3467[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];641 -> 3467[label="",style="solid", color="burlywood", weight=9]; 3467 -> 655[label="",style="solid", color="burlywood", weight=3]; 3468[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];641 -> 3468[label="",style="solid", color="burlywood", weight=9]; 3468 -> 656[label="",style="solid", color="burlywood", weight=3]; 642[label="absReal1 (Neg vuz320) (not (primCmpInt (Neg vuz320) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3469[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];642 -> 3469[label="",style="solid", color="burlywood", weight=9]; 3469 -> 657[label="",style="solid", color="burlywood", weight=3]; 3470[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];642 -> 3470[label="",style="solid", color="burlywood", weight=9]; 3470 -> 658[label="",style="solid", color="burlywood", weight=3]; 643[label="primRemInt vuz71 vuz70",fontsize=16,color="burlywood",shape="triangle"];3471[label="vuz71/Pos vuz710",fontsize=10,color="white",style="solid",shape="box"];643 -> 3471[label="",style="solid", color="burlywood", weight=9]; 3471 -> 659[label="",style="solid", color="burlywood", weight=3]; 3472[label="vuz71/Neg vuz710",fontsize=10,color="white",style="solid",shape="box"];643 -> 3472[label="",style="solid", color="burlywood", weight=9]; 3472 -> 660[label="",style="solid", color="burlywood", weight=3]; 644 -> 572[label="",style="dashed", color="red", weight=0]; 644[label="gcd0Gcd'0 vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="magenta"];644 -> 661[label="",style="dashed", color="magenta", weight=3]; 644 -> 662[label="",style="dashed", color="magenta", weight=3]; 645[label="vuz70",fontsize=16,color="green",shape="box"];1034[label="primMinusNatS (Succ vuz880) vuz89",fontsize=16,color="burlywood",shape="box"];3473[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1034 -> 3473[label="",style="solid", color="burlywood", weight=9]; 3473 -> 1083[label="",style="solid", color="burlywood", weight=3]; 3474[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1034 -> 3474[label="",style="solid", color="burlywood", weight=9]; 3474 -> 1084[label="",style="solid", color="burlywood", weight=3]; 1035[label="primMinusNatS Zero vuz89",fontsize=16,color="burlywood",shape="box"];3475[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1035 -> 3475[label="",style="solid", color="burlywood", weight=9]; 3475 -> 1085[label="",style="solid", color="burlywood", weight=3]; 3476[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1035 -> 3476[label="",style="solid", color="burlywood", weight=9]; 3476 -> 1086[label="",style="solid", color="burlywood", weight=3]; 618[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz69 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz69 == LT)))",fontsize=16,color="burlywood",shape="box"];3477[label="vuz69/Integer vuz690",fontsize=10,color="white",style="solid",shape="box"];618 -> 3477[label="",style="solid", color="burlywood", weight=9]; 3477 -> 633[label="",style="solid", color="burlywood", weight=3]; 655[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3478[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3478[label="",style="solid", color="burlywood", weight=9]; 3478 -> 672[label="",style="solid", color="burlywood", weight=3]; 3479[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3479[label="",style="solid", color="burlywood", weight=9]; 3479 -> 673[label="",style="solid", color="burlywood", weight=3]; 656[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3480[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3480[label="",style="solid", color="burlywood", weight=9]; 3480 -> 674[label="",style="solid", color="burlywood", weight=3]; 3481[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3481[label="",style="solid", color="burlywood", weight=9]; 3481 -> 675[label="",style="solid", color="burlywood", weight=3]; 657[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3482[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3482[label="",style="solid", color="burlywood", weight=9]; 3482 -> 676[label="",style="solid", color="burlywood", weight=3]; 3483[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3483[label="",style="solid", color="burlywood", weight=9]; 3483 -> 677[label="",style="solid", color="burlywood", weight=3]; 658[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3484[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];658 -> 3484[label="",style="solid", color="burlywood", weight=9]; 3484 -> 678[label="",style="solid", color="burlywood", weight=3]; 3485[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];658 -> 3485[label="",style="solid", color="burlywood", weight=9]; 3485 -> 679[label="",style="solid", color="burlywood", weight=3]; 659[label="primRemInt (Pos vuz710) vuz70",fontsize=16,color="burlywood",shape="box"];3486[label="vuz70/Pos vuz700",fontsize=10,color="white",style="solid",shape="box"];659 -> 3486[label="",style="solid", color="burlywood", weight=9]; 3486 -> 680[label="",style="solid", color="burlywood", weight=3]; 3487[label="vuz70/Neg vuz700",fontsize=10,color="white",style="solid",shape="box"];659 -> 3487[label="",style="solid", color="burlywood", weight=9]; 3487 -> 681[label="",style="solid", color="burlywood", weight=3]; 660[label="primRemInt (Neg vuz710) vuz70",fontsize=16,color="burlywood",shape="box"];3488[label="vuz70/Pos vuz700",fontsize=10,color="white",style="solid",shape="box"];660 -> 3488[label="",style="solid", color="burlywood", weight=9]; 3488 -> 682[label="",style="solid", color="burlywood", weight=3]; 3489[label="vuz70/Neg vuz700",fontsize=10,color="white",style="solid",shape="box"];660 -> 3489[label="",style="solid", color="burlywood", weight=9]; 3489 -> 683[label="",style="solid", color="burlywood", weight=3]; 661[label="vuz70",fontsize=16,color="green",shape="box"];662 -> 629[label="",style="dashed", color="red", weight=0]; 662[label="vuz71 `rem` vuz70",fontsize=16,color="magenta"];1083[label="primMinusNatS (Succ vuz880) (Succ vuz890)",fontsize=16,color="black",shape="box"];1083 -> 1137[label="",style="solid", color="black", weight=3]; 1084[label="primMinusNatS (Succ vuz880) Zero",fontsize=16,color="black",shape="box"];1084 -> 1138[label="",style="solid", color="black", weight=3]; 1085[label="primMinusNatS Zero (Succ vuz890)",fontsize=16,color="black",shape="box"];1085 -> 1139[label="",style="solid", color="black", weight=3]; 1086[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];1086 -> 1140[label="",style="solid", color="black", weight=3]; 633[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz690) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz690) == LT)))",fontsize=16,color="black",shape="box"];633 -> 646[label="",style="solid", color="black", weight=3]; 672[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];672 -> 695[label="",style="solid", color="black", weight=3]; 673[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];673 -> 696[label="",style="solid", color="black", weight=3]; 674[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3490[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];674 -> 3490[label="",style="solid", color="burlywood", weight=9]; 3490 -> 697[label="",style="solid", color="burlywood", weight=3]; 3491[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];674 -> 3491[label="",style="solid", color="burlywood", weight=9]; 3491 -> 698[label="",style="solid", color="burlywood", weight=3]; 675[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3492[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];675 -> 3492[label="",style="solid", color="burlywood", weight=9]; 3492 -> 699[label="",style="solid", color="burlywood", weight=3]; 3493[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];675 -> 3493[label="",style="solid", color="burlywood", weight=9]; 3493 -> 700[label="",style="solid", color="burlywood", weight=3]; 676[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];676 -> 701[label="",style="solid", color="black", weight=3]; 677[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];677 -> 702[label="",style="solid", color="black", weight=3]; 678[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3494[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];678 -> 3494[label="",style="solid", color="burlywood", weight=9]; 3494 -> 703[label="",style="solid", color="burlywood", weight=3]; 3495[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];678 -> 3495[label="",style="solid", color="burlywood", weight=9]; 3495 -> 704[label="",style="solid", color="burlywood", weight=3]; 679[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3496[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];679 -> 3496[label="",style="solid", color="burlywood", weight=9]; 3496 -> 705[label="",style="solid", color="burlywood", weight=3]; 3497[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];679 -> 3497[label="",style="solid", color="burlywood", weight=9]; 3497 -> 706[label="",style="solid", color="burlywood", weight=3]; 680[label="primRemInt (Pos vuz710) (Pos vuz700)",fontsize=16,color="burlywood",shape="box"];3498[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];680 -> 3498[label="",style="solid", color="burlywood", weight=9]; 3498 -> 707[label="",style="solid", color="burlywood", weight=3]; 3499[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];680 -> 3499[label="",style="solid", color="burlywood", weight=9]; 3499 -> 708[label="",style="solid", color="burlywood", weight=3]; 681[label="primRemInt (Pos vuz710) (Neg vuz700)",fontsize=16,color="burlywood",shape="box"];3500[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];681 -> 3500[label="",style="solid", color="burlywood", weight=9]; 3500 -> 709[label="",style="solid", color="burlywood", weight=3]; 3501[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];681 -> 3501[label="",style="solid", color="burlywood", weight=9]; 3501 -> 710[label="",style="solid", color="burlywood", weight=3]; 682[label="primRemInt (Neg vuz710) (Pos vuz700)",fontsize=16,color="burlywood",shape="box"];3502[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];682 -> 3502[label="",style="solid", color="burlywood", weight=9]; 3502 -> 711[label="",style="solid", color="burlywood", weight=3]; 3503[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];682 -> 3503[label="",style="solid", color="burlywood", weight=9]; 3503 -> 712[label="",style="solid", color="burlywood", weight=3]; 683[label="primRemInt (Neg vuz710) (Neg vuz700)",fontsize=16,color="burlywood",shape="box"];3504[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];683 -> 3504[label="",style="solid", color="burlywood", weight=9]; 3504 -> 713[label="",style="solid", color="burlywood", weight=3]; 3505[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];683 -> 3505[label="",style="solid", color="burlywood", weight=9]; 3505 -> 714[label="",style="solid", color="burlywood", weight=3]; 1137 -> 1025[label="",style="dashed", color="red", weight=0]; 1137[label="primMinusNatS vuz880 vuz890",fontsize=16,color="magenta"];1137 -> 1188[label="",style="dashed", color="magenta", weight=3]; 1137 -> 1189[label="",style="dashed", color="magenta", weight=3]; 1138[label="Succ vuz880",fontsize=16,color="green",shape="box"];1139[label="Zero",fontsize=16,color="green",shape="box"];1140[label="Zero",fontsize=16,color="green",shape="box"];646[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3506[label="vuz380/Pos vuz3800",fontsize=10,color="white",style="solid",shape="box"];646 -> 3506[label="",style="solid", color="burlywood", weight=9]; 3506 -> 663[label="",style="solid", color="burlywood", weight=3]; 3507[label="vuz380/Neg vuz3800",fontsize=10,color="white",style="solid",shape="box"];646 -> 3507[label="",style="solid", color="burlywood", weight=9]; 3507 -> 664[label="",style="solid", color="burlywood", weight=3]; 695 -> 1480[label="",style="dashed", color="red", weight=0]; 695[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpNat (Succ vuz3200) vuz720 == LT))",fontsize=16,color="magenta"];695 -> 1481[label="",style="dashed", color="magenta", weight=3]; 695 -> 1482[label="",style="dashed", color="magenta", weight=3]; 695 -> 1483[label="",style="dashed", color="magenta", weight=3]; 696[label="absReal1 (Pos (Succ vuz3200)) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];696 -> 733[label="",style="solid", color="black", weight=3]; 697[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];697 -> 734[label="",style="solid", color="black", weight=3]; 698[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];698 -> 735[label="",style="solid", color="black", weight=3]; 699[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];699 -> 736[label="",style="solid", color="black", weight=3]; 700[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];700 -> 737[label="",style="solid", color="black", weight=3]; 701[label="absReal1 (Neg (Succ vuz3200)) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];701 -> 738[label="",style="solid", color="black", weight=3]; 702 -> 1628[label="",style="dashed", color="red", weight=0]; 702[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpNat vuz720 (Succ vuz3200) == LT))",fontsize=16,color="magenta"];702 -> 1629[label="",style="dashed", color="magenta", weight=3]; 702 -> 1630[label="",style="dashed", color="magenta", weight=3]; 702 -> 1631[label="",style="dashed", color="magenta", weight=3]; 703[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];703 -> 741[label="",style="solid", color="black", weight=3]; 704[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];704 -> 742[label="",style="solid", color="black", weight=3]; 705[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];705 -> 743[label="",style="solid", color="black", weight=3]; 706[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];706 -> 744[label="",style="solid", color="black", weight=3]; 707[label="primRemInt (Pos vuz710) (Pos (Succ vuz7000))",fontsize=16,color="black",shape="box"];707 -> 745[label="",style="solid", color="black", weight=3]; 708[label="primRemInt (Pos vuz710) (Pos Zero)",fontsize=16,color="black",shape="box"];708 -> 746[label="",style="solid", color="black", weight=3]; 709[label="primRemInt (Pos vuz710) (Neg (Succ vuz7000))",fontsize=16,color="black",shape="box"];709 -> 747[label="",style="solid", color="black", weight=3]; 710[label="primRemInt (Pos vuz710) (Neg Zero)",fontsize=16,color="black",shape="box"];710 -> 748[label="",style="solid", color="black", weight=3]; 711[label="primRemInt (Neg vuz710) (Pos (Succ vuz7000))",fontsize=16,color="black",shape="box"];711 -> 749[label="",style="solid", color="black", weight=3]; 712[label="primRemInt (Neg vuz710) (Pos Zero)",fontsize=16,color="black",shape="box"];712 -> 750[label="",style="solid", color="black", weight=3]; 713[label="primRemInt (Neg vuz710) (Neg (Succ vuz7000))",fontsize=16,color="black",shape="box"];713 -> 751[label="",style="solid", color="black", weight=3]; 714[label="primRemInt (Neg vuz710) (Neg Zero)",fontsize=16,color="black",shape="box"];714 -> 752[label="",style="solid", color="black", weight=3]; 1188[label="vuz880",fontsize=16,color="green",shape="box"];1189[label="vuz890",fontsize=16,color="green",shape="box"];663[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3508[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];663 -> 3508[label="",style="solid", color="burlywood", weight=9]; 3508 -> 684[label="",style="solid", color="burlywood", weight=3]; 3509[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];663 -> 3509[label="",style="solid", color="burlywood", weight=9]; 3509 -> 685[label="",style="solid", color="burlywood", weight=3]; 664[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3510[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];664 -> 3510[label="",style="solid", color="burlywood", weight=9]; 3510 -> 686[label="",style="solid", color="burlywood", weight=3]; 3511[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];664 -> 3511[label="",style="solid", color="burlywood", weight=9]; 3511 -> 687[label="",style="solid", color="burlywood", weight=3]; 1481[label="vuz720",fontsize=16,color="green",shape="box"];1482[label="vuz3200",fontsize=16,color="green",shape="box"];1483[label="Succ vuz3200",fontsize=16,color="green",shape="box"];1480[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz105 vuz106 == LT))",fontsize=16,color="burlywood",shape="triangle"];3512[label="vuz105/Succ vuz1050",fontsize=10,color="white",style="solid",shape="box"];1480 -> 3512[label="",style="solid", color="burlywood", weight=9]; 3512 -> 1504[label="",style="solid", color="burlywood", weight=3]; 3513[label="vuz105/Zero",fontsize=10,color="white",style="solid",shape="box"];1480 -> 3513[label="",style="solid", color="burlywood", weight=9]; 3513 -> 1505[label="",style="solid", color="burlywood", weight=3]; 733[label="absReal1 (Pos (Succ vuz3200)) (not False)",fontsize=16,color="black",shape="triangle"];733 -> 774[label="",style="solid", color="black", weight=3]; 734[label="absReal1 (Pos Zero) (not (primCmpNat Zero (Succ vuz7200) == LT))",fontsize=16,color="black",shape="box"];734 -> 775[label="",style="solid", color="black", weight=3]; 735[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];735 -> 776[label="",style="solid", color="black", weight=3]; 736[label="absReal1 (Pos Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];736 -> 777[label="",style="solid", color="black", weight=3]; 737 -> 735[label="",style="dashed", color="red", weight=0]; 737[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="magenta"];738[label="absReal1 (Neg (Succ vuz3200)) (not True)",fontsize=16,color="black",shape="box"];738 -> 778[label="",style="solid", color="black", weight=3]; 1629[label="vuz3200",fontsize=16,color="green",shape="box"];1630[label="Succ vuz3200",fontsize=16,color="green",shape="box"];1631[label="vuz720",fontsize=16,color="green",shape="box"];1628[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat vuz113 vuz114 == LT))",fontsize=16,color="burlywood",shape="triangle"];3514[label="vuz113/Succ vuz1130",fontsize=10,color="white",style="solid",shape="box"];1628 -> 3514[label="",style="solid", color="burlywood", weight=9]; 3514 -> 1653[label="",style="solid", color="burlywood", weight=3]; 3515[label="vuz113/Zero",fontsize=10,color="white",style="solid",shape="box"];1628 -> 3515[label="",style="solid", color="burlywood", weight=9]; 3515 -> 1654[label="",style="solid", color="burlywood", weight=3]; 741[label="absReal1 (Neg Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];741 -> 781[label="",style="solid", color="black", weight=3]; 742[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];742 -> 782[label="",style="solid", color="black", weight=3]; 743[label="absReal1 (Neg Zero) (not (primCmpNat (Succ vuz7200) Zero == LT))",fontsize=16,color="black",shape="box"];743 -> 783[label="",style="solid", color="black", weight=3]; 744 -> 742[label="",style="dashed", color="red", weight=0]; 744[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="magenta"];745[label="Pos (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];745 -> 784[label="",style="dashed", color="green", weight=3]; 746 -> 486[label="",style="dashed", color="red", weight=0]; 746[label="error []",fontsize=16,color="magenta"];747[label="Pos (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];747 -> 785[label="",style="dashed", color="green", weight=3]; 748 -> 486[label="",style="dashed", color="red", weight=0]; 748[label="error []",fontsize=16,color="magenta"];749[label="Neg (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];749 -> 786[label="",style="dashed", color="green", weight=3]; 750 -> 486[label="",style="dashed", color="red", weight=0]; 750[label="error []",fontsize=16,color="magenta"];751[label="Neg (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];751 -> 787[label="",style="dashed", color="green", weight=3]; 752 -> 486[label="",style="dashed", color="red", weight=0]; 752[label="error []",fontsize=16,color="magenta"];684[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3516[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];684 -> 3516[label="",style="solid", color="burlywood", weight=9]; 3516 -> 715[label="",style="solid", color="burlywood", weight=3]; 3517[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];684 -> 3517[label="",style="solid", color="burlywood", weight=9]; 3517 -> 716[label="",style="solid", color="burlywood", weight=3]; 685[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3518[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];685 -> 3518[label="",style="solid", color="burlywood", weight=9]; 3518 -> 717[label="",style="solid", color="burlywood", weight=3]; 3519[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];685 -> 3519[label="",style="solid", color="burlywood", weight=9]; 3519 -> 718[label="",style="solid", color="burlywood", weight=3]; 686[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3520[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];686 -> 3520[label="",style="solid", color="burlywood", weight=9]; 3520 -> 719[label="",style="solid", color="burlywood", weight=3]; 3521[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];686 -> 3521[label="",style="solid", color="burlywood", weight=9]; 3521 -> 720[label="",style="solid", color="burlywood", weight=3]; 687[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3522[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];687 -> 3522[label="",style="solid", color="burlywood", weight=9]; 3522 -> 721[label="",style="solid", color="burlywood", weight=3]; 3523[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];687 -> 3523[label="",style="solid", color="burlywood", weight=9]; 3523 -> 722[label="",style="solid", color="burlywood", weight=3]; 1504[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3524[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1504 -> 3524[label="",style="solid", color="burlywood", weight=9]; 3524 -> 1509[label="",style="solid", color="burlywood", weight=3]; 3525[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1504 -> 3525[label="",style="solid", color="burlywood", weight=9]; 3525 -> 1510[label="",style="solid", color="burlywood", weight=3]; 1505[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3526[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1505 -> 3526[label="",style="solid", color="burlywood", weight=9]; 3526 -> 1511[label="",style="solid", color="burlywood", weight=3]; 3527[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1505 -> 3527[label="",style="solid", color="burlywood", weight=9]; 3527 -> 1512[label="",style="solid", color="burlywood", weight=3]; 774[label="absReal1 (Pos (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];774 -> 811[label="",style="solid", color="black", weight=3]; 775[label="absReal1 (Pos Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];775 -> 812[label="",style="solid", color="black", weight=3]; 776[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="triangle"];776 -> 813[label="",style="solid", color="black", weight=3]; 777 -> 776[label="",style="dashed", color="red", weight=0]; 777[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="magenta"];778[label="absReal1 (Neg (Succ vuz3200)) False",fontsize=16,color="black",shape="box"];778 -> 814[label="",style="solid", color="black", weight=3]; 1653[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat (Succ vuz1130) vuz114 == LT))",fontsize=16,color="burlywood",shape="box"];3528[label="vuz114/Succ vuz1140",fontsize=10,color="white",style="solid",shape="box"];1653 -> 3528[label="",style="solid", color="burlywood", weight=9]; 3528 -> 1692[label="",style="solid", color="burlywood", weight=3]; 3529[label="vuz114/Zero",fontsize=10,color="white",style="solid",shape="box"];1653 -> 3529[label="",style="solid", color="burlywood", weight=9]; 3529 -> 1693[label="",style="solid", color="burlywood", weight=3]; 1654[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat Zero vuz114 == LT))",fontsize=16,color="burlywood",shape="box"];3530[label="vuz114/Succ vuz1140",fontsize=10,color="white",style="solid",shape="box"];1654 -> 3530[label="",style="solid", color="burlywood", weight=9]; 3530 -> 1694[label="",style="solid", color="burlywood", weight=3]; 3531[label="vuz114/Zero",fontsize=10,color="white",style="solid",shape="box"];1654 -> 3531[label="",style="solid", color="burlywood", weight=9]; 3531 -> 1695[label="",style="solid", color="burlywood", weight=3]; 781[label="absReal1 (Neg Zero) (not True)",fontsize=16,color="black",shape="box"];781 -> 817[label="",style="solid", color="black", weight=3]; 782[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="triangle"];782 -> 818[label="",style="solid", color="black", weight=3]; 783[label="absReal1 (Neg Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];783 -> 819[label="",style="solid", color="black", weight=3]; 784[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="burlywood",shape="triangle"];3532[label="vuz710/Succ vuz7100",fontsize=10,color="white",style="solid",shape="box"];784 -> 3532[label="",style="solid", color="burlywood", weight=9]; 3532 -> 820[label="",style="solid", color="burlywood", weight=3]; 3533[label="vuz710/Zero",fontsize=10,color="white",style="solid",shape="box"];784 -> 3533[label="",style="solid", color="burlywood", weight=9]; 3533 -> 821[label="",style="solid", color="burlywood", weight=3]; 785 -> 784[label="",style="dashed", color="red", weight=0]; 785[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="magenta"];785 -> 822[label="",style="dashed", color="magenta", weight=3]; 786 -> 784[label="",style="dashed", color="red", weight=0]; 786[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="magenta"];786 -> 823[label="",style="dashed", color="magenta", weight=3]; 787 -> 784[label="",style="dashed", color="red", weight=0]; 787[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="magenta"];787 -> 824[label="",style="dashed", color="magenta", weight=3]; 787 -> 825[label="",style="dashed", color="magenta", weight=3]; 715[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz6900) == LT)))",fontsize=16,color="black",shape="box"];715 -> 753[label="",style="solid", color="black", weight=3]; 716[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz6900) == LT)))",fontsize=16,color="black",shape="box"];716 -> 754[label="",style="solid", color="black", weight=3]; 717[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3534[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];717 -> 3534[label="",style="solid", color="burlywood", weight=9]; 3534 -> 755[label="",style="solid", color="burlywood", weight=3]; 3535[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];717 -> 3535[label="",style="solid", color="burlywood", weight=9]; 3535 -> 756[label="",style="solid", color="burlywood", weight=3]; 718[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3536[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];718 -> 3536[label="",style="solid", color="burlywood", weight=9]; 3536 -> 757[label="",style="solid", color="burlywood", weight=3]; 3537[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];718 -> 3537[label="",style="solid", color="burlywood", weight=9]; 3537 -> 758[label="",style="solid", color="burlywood", weight=3]; 719[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz6900) == LT)))",fontsize=16,color="black",shape="box"];719 -> 759[label="",style="solid", color="black", weight=3]; 720[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz6900) == LT)))",fontsize=16,color="black",shape="box"];720 -> 760[label="",style="solid", color="black", weight=3]; 721[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3538[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];721 -> 3538[label="",style="solid", color="burlywood", weight=9]; 3538 -> 761[label="",style="solid", color="burlywood", weight=3]; 3539[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];721 -> 3539[label="",style="solid", color="burlywood", weight=9]; 3539 -> 762[label="",style="solid", color="burlywood", weight=3]; 722[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3540[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];722 -> 3540[label="",style="solid", color="burlywood", weight=9]; 3540 -> 763[label="",style="solid", color="burlywood", weight=3]; 3541[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];722 -> 3541[label="",style="solid", color="burlywood", weight=9]; 3541 -> 764[label="",style="solid", color="burlywood", weight=3]; 1509[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1509 -> 1522[label="",style="solid", color="black", weight=3]; 1510[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) Zero == LT))",fontsize=16,color="black",shape="box"];1510 -> 1523[label="",style="solid", color="black", weight=3]; 1511[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1511 -> 1524[label="",style="solid", color="black", weight=3]; 1512[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1512 -> 1525[label="",style="solid", color="black", weight=3]; 811[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];812[label="absReal1 (Pos Zero) (not True)",fontsize=16,color="black",shape="box"];812 -> 850[label="",style="solid", color="black", weight=3]; 813[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];813 -> 851[label="",style="solid", color="black", weight=3]; 814[label="absReal0 (Neg (Succ vuz3200)) otherwise",fontsize=16,color="black",shape="box"];814 -> 852[label="",style="solid", color="black", weight=3]; 1692[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat (Succ vuz1130) (Succ vuz1140) == LT))",fontsize=16,color="black",shape="box"];1692 -> 1738[label="",style="solid", color="black", weight=3]; 1693[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat (Succ vuz1130) Zero == LT))",fontsize=16,color="black",shape="box"];1693 -> 1739[label="",style="solid", color="black", weight=3]; 1694[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat Zero (Succ vuz1140) == LT))",fontsize=16,color="black",shape="box"];1694 -> 1740[label="",style="solid", color="black", weight=3]; 1695[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1695 -> 1741[label="",style="solid", color="black", weight=3]; 817[label="absReal1 (Neg Zero) False",fontsize=16,color="black",shape="box"];817 -> 857[label="",style="solid", color="black", weight=3]; 818[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];818 -> 858[label="",style="solid", color="black", weight=3]; 819 -> 782[label="",style="dashed", color="red", weight=0]; 819[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="magenta"];820[label="primModNatS (Succ vuz7100) (Succ vuz7000)",fontsize=16,color="black",shape="box"];820 -> 859[label="",style="solid", color="black", weight=3]; 821[label="primModNatS Zero (Succ vuz7000)",fontsize=16,color="black",shape="box"];821 -> 860[label="",style="solid", color="black", weight=3]; 822[label="vuz7000",fontsize=16,color="green",shape="box"];823[label="vuz710",fontsize=16,color="green",shape="box"];824[label="vuz7000",fontsize=16,color="green",shape="box"];825[label="vuz710",fontsize=16,color="green",shape="box"];753 -> 2120[label="",style="dashed", color="red", weight=0]; 753[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz6900 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz6900 == LT)))",fontsize=16,color="magenta"];753 -> 2121[label="",style="dashed", color="magenta", weight=3]; 753 -> 2122[label="",style="dashed", color="magenta", weight=3]; 753 -> 2123[label="",style="dashed", color="magenta", weight=3]; 753 -> 2124[label="",style="dashed", color="magenta", weight=3]; 753 -> 2125[label="",style="dashed", color="magenta", weight=3]; 753 -> 2126[label="",style="dashed", color="magenta", weight=3]; 754[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];754 -> 790[label="",style="solid", color="black", weight=3]; 755[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];755 -> 791[label="",style="solid", color="black", weight=3]; 756[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];756 -> 792[label="",style="solid", color="black", weight=3]; 757[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];757 -> 793[label="",style="solid", color="black", weight=3]; 758[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];758 -> 794[label="",style="solid", color="black", weight=3]; 759[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];759 -> 795[label="",style="solid", color="black", weight=3]; 760 -> 2222[label="",style="dashed", color="red", weight=0]; 760[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz6900 (Succ vuz38000) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz6900 (Succ vuz38000) == LT)))",fontsize=16,color="magenta"];760 -> 2223[label="",style="dashed", color="magenta", weight=3]; 760 -> 2224[label="",style="dashed", color="magenta", weight=3]; 760 -> 2225[label="",style="dashed", color="magenta", weight=3]; 760 -> 2226[label="",style="dashed", color="magenta", weight=3]; 760 -> 2227[label="",style="dashed", color="magenta", weight=3]; 760 -> 2228[label="",style="dashed", color="magenta", weight=3]; 761[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];761 -> 798[label="",style="solid", color="black", weight=3]; 762[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];762 -> 799[label="",style="solid", color="black", weight=3]; 763[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];763 -> 800[label="",style="solid", color="black", weight=3]; 764[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];764 -> 801[label="",style="solid", color="black", weight=3]; 1522 -> 1480[label="",style="dashed", color="red", weight=0]; 1522[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz1050 vuz1060 == LT))",fontsize=16,color="magenta"];1522 -> 1559[label="",style="dashed", color="magenta", weight=3]; 1522 -> 1560[label="",style="dashed", color="magenta", weight=3]; 1523 -> 696[label="",style="dashed", color="red", weight=0]; 1523[label="absReal1 (Pos (Succ vuz104)) (not (GT == LT))",fontsize=16,color="magenta"];1523 -> 1561[label="",style="dashed", color="magenta", weight=3]; 1524[label="absReal1 (Pos (Succ vuz104)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1524 -> 1562[label="",style="solid", color="black", weight=3]; 1525[label="absReal1 (Pos (Succ vuz104)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1525 -> 1563[label="",style="solid", color="black", weight=3]; 850[label="absReal1 (Pos Zero) False",fontsize=16,color="black",shape="box"];850 -> 890[label="",style="solid", color="black", weight=3]; 851[label="Pos Zero",fontsize=16,color="green",shape="box"];852[label="absReal0 (Neg (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];852 -> 891[label="",style="solid", color="black", weight=3]; 1738 -> 1628[label="",style="dashed", color="red", weight=0]; 1738[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat vuz1130 vuz1140 == LT))",fontsize=16,color="magenta"];1738 -> 1748[label="",style="dashed", color="magenta", weight=3]; 1738 -> 1749[label="",style="dashed", color="magenta", weight=3]; 1739[label="absReal1 (Neg (Succ vuz112)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1739 -> 1750[label="",style="solid", color="black", weight=3]; 1740 -> 701[label="",style="dashed", color="red", weight=0]; 1740[label="absReal1 (Neg (Succ vuz112)) (not (LT == LT))",fontsize=16,color="magenta"];1740 -> 1751[label="",style="dashed", color="magenta", weight=3]; 1741[label="absReal1 (Neg (Succ vuz112)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1741 -> 1752[label="",style="solid", color="black", weight=3]; 857[label="absReal0 (Neg Zero) otherwise",fontsize=16,color="black",shape="box"];857 -> 896[label="",style="solid", color="black", weight=3]; 858[label="Neg Zero",fontsize=16,color="green",shape="box"];859[label="primModNatS0 vuz7100 vuz7000 (primGEqNatS vuz7100 vuz7000)",fontsize=16,color="burlywood",shape="box"];3542[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];859 -> 3542[label="",style="solid", color="burlywood", weight=9]; 3542 -> 897[label="",style="solid", color="burlywood", weight=3]; 3543[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];859 -> 3543[label="",style="solid", color="burlywood", weight=9]; 3543 -> 898[label="",style="solid", color="burlywood", weight=3]; 860[label="Zero",fontsize=16,color="green",shape="box"];2121[label="vuz38000",fontsize=16,color="green",shape="box"];2122[label="vuz6900",fontsize=16,color="green",shape="box"];2123[label="vuz62",fontsize=16,color="green",shape="box"];2124[label="vuz300",fontsize=16,color="green",shape="box"];2125[label="vuz290",fontsize=16,color="green",shape="box"];2126[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2120[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz138 vuz139 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz138 vuz139 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3544[label="vuz138/Succ vuz1380",fontsize=10,color="white",style="solid",shape="box"];2120 -> 3544[label="",style="solid", color="burlywood", weight=9]; 3544 -> 2181[label="",style="solid", color="burlywood", weight=3]; 3545[label="vuz138/Zero",fontsize=10,color="white",style="solid",shape="box"];2120 -> 3545[label="",style="solid", color="burlywood", weight=9]; 3545 -> 2182[label="",style="solid", color="burlywood", weight=3]; 790[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not False))",fontsize=16,color="black",shape="triangle"];790 -> 828[label="",style="solid", color="black", weight=3]; 791[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz69000) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz69000) == LT)))",fontsize=16,color="black",shape="box"];791 -> 829[label="",style="solid", color="black", weight=3]; 792[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];792 -> 830[label="",style="solid", color="black", weight=3]; 793[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];793 -> 831[label="",style="solid", color="black", weight=3]; 794 -> 792[label="",style="dashed", color="red", weight=0]; 794[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];795[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not True) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not True))",fontsize=16,color="black",shape="box"];795 -> 832[label="",style="solid", color="black", weight=3]; 2223[label="vuz300",fontsize=16,color="green",shape="box"];2224[label="vuz62",fontsize=16,color="green",shape="box"];2225[label="vuz290",fontsize=16,color="green",shape="box"];2226[label="vuz6900",fontsize=16,color="green",shape="box"];2227[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2228[label="vuz38000",fontsize=16,color="green",shape="box"];2222[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz148 vuz149 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz148 vuz149 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3546[label="vuz148/Succ vuz1480",fontsize=10,color="white",style="solid",shape="box"];2222 -> 3546[label="",style="solid", color="burlywood", weight=9]; 3546 -> 2283[label="",style="solid", color="burlywood", weight=3]; 3547[label="vuz148/Zero",fontsize=10,color="white",style="solid",shape="box"];2222 -> 3547[label="",style="solid", color="burlywood", weight=9]; 3547 -> 2284[label="",style="solid", color="burlywood", weight=3]; 798[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];798 -> 835[label="",style="solid", color="black", weight=3]; 799[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];799 -> 836[label="",style="solid", color="black", weight=3]; 800[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz69000) Zero == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz69000) Zero == LT)))",fontsize=16,color="black",shape="box"];800 -> 837[label="",style="solid", color="black", weight=3]; 801 -> 799[label="",style="dashed", color="red", weight=0]; 801[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];1559[label="vuz1060",fontsize=16,color="green",shape="box"];1560[label="vuz1050",fontsize=16,color="green",shape="box"];1561[label="vuz104",fontsize=16,color="green",shape="box"];1562[label="absReal1 (Pos (Succ vuz104)) (not True)",fontsize=16,color="black",shape="box"];1562 -> 1600[label="",style="solid", color="black", weight=3]; 1563 -> 733[label="",style="dashed", color="red", weight=0]; 1563[label="absReal1 (Pos (Succ vuz104)) (not False)",fontsize=16,color="magenta"];1563 -> 1601[label="",style="dashed", color="magenta", weight=3]; 890[label="absReal0 (Pos Zero) otherwise",fontsize=16,color="black",shape="box"];890 -> 933[label="",style="solid", color="black", weight=3]; 891[label="`negate` Neg (Succ vuz3200)",fontsize=16,color="black",shape="box"];891 -> 934[label="",style="solid", color="black", weight=3]; 1748[label="vuz1140",fontsize=16,color="green",shape="box"];1749[label="vuz1130",fontsize=16,color="green",shape="box"];1750[label="absReal1 (Neg (Succ vuz112)) (not False)",fontsize=16,color="black",shape="triangle"];1750 -> 1756[label="",style="solid", color="black", weight=3]; 1751[label="vuz112",fontsize=16,color="green",shape="box"];1752 -> 1750[label="",style="dashed", color="red", weight=0]; 1752[label="absReal1 (Neg (Succ vuz112)) (not False)",fontsize=16,color="magenta"];896[label="absReal0 (Neg Zero) True",fontsize=16,color="black",shape="box"];896 -> 940[label="",style="solid", color="black", weight=3]; 897[label="primModNatS0 (Succ vuz71000) vuz7000 (primGEqNatS (Succ vuz71000) vuz7000)",fontsize=16,color="burlywood",shape="box"];3548[label="vuz7000/Succ vuz70000",fontsize=10,color="white",style="solid",shape="box"];897 -> 3548[label="",style="solid", color="burlywood", weight=9]; 3548 -> 941[label="",style="solid", color="burlywood", weight=3]; 3549[label="vuz7000/Zero",fontsize=10,color="white",style="solid",shape="box"];897 -> 3549[label="",style="solid", color="burlywood", weight=9]; 3549 -> 942[label="",style="solid", color="burlywood", weight=3]; 898[label="primModNatS0 Zero vuz7000 (primGEqNatS Zero vuz7000)",fontsize=16,color="burlywood",shape="box"];3550[label="vuz7000/Succ vuz70000",fontsize=10,color="white",style="solid",shape="box"];898 -> 3550[label="",style="solid", color="burlywood", weight=9]; 3550 -> 943[label="",style="solid", color="burlywood", weight=3]; 3551[label="vuz7000/Zero",fontsize=10,color="white",style="solid",shape="box"];898 -> 3551[label="",style="solid", color="burlywood", weight=9]; 3551 -> 944[label="",style="solid", color="burlywood", weight=3]; 2181[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) vuz139 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) vuz139 == LT)))",fontsize=16,color="burlywood",shape="box"];3552[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2181 -> 3552[label="",style="solid", color="burlywood", weight=9]; 3552 -> 2192[label="",style="solid", color="burlywood", weight=3]; 3553[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2181 -> 3553[label="",style="solid", color="burlywood", weight=9]; 3553 -> 2193[label="",style="solid", color="burlywood", weight=3]; 2182[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero vuz139 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero vuz139 == LT)))",fontsize=16,color="burlywood",shape="box"];3554[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2182 -> 3554[label="",style="solid", color="burlywood", weight=9]; 3554 -> 2194[label="",style="solid", color="burlywood", weight=3]; 3555[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2182 -> 3555[label="",style="solid", color="burlywood", weight=9]; 3555 -> 2195[label="",style="solid", color="burlywood", weight=3]; 828[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) True == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];828 -> 863[label="",style="solid", color="black", weight=3]; 829[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];829 -> 864[label="",style="solid", color="black", weight=3]; 830[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="black",shape="triangle"];830 -> 865[label="",style="solid", color="black", weight=3]; 831 -> 830[label="",style="dashed", color="red", weight=0]; 831[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="magenta"];832[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) False == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) False)",fontsize=16,color="black",shape="box"];832 -> 866[label="",style="solid", color="black", weight=3]; 2283[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) vuz149 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) vuz149 == LT)))",fontsize=16,color="burlywood",shape="box"];3556[label="vuz149/Succ vuz1490",fontsize=10,color="white",style="solid",shape="box"];2283 -> 3556[label="",style="solid", color="burlywood", weight=9]; 3556 -> 2336[label="",style="solid", color="burlywood", weight=3]; 3557[label="vuz149/Zero",fontsize=10,color="white",style="solid",shape="box"];2283 -> 3557[label="",style="solid", color="burlywood", weight=9]; 3557 -> 2337[label="",style="solid", color="burlywood", weight=3]; 2284[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero vuz149 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero vuz149 == LT)))",fontsize=16,color="burlywood",shape="box"];3558[label="vuz149/Succ vuz1490",fontsize=10,color="white",style="solid",shape="box"];2284 -> 3558[label="",style="solid", color="burlywood", weight=9]; 3558 -> 2338[label="",style="solid", color="burlywood", weight=3]; 3559[label="vuz149/Zero",fontsize=10,color="white",style="solid",shape="box"];2284 -> 3559[label="",style="solid", color="burlywood", weight=9]; 3559 -> 2339[label="",style="solid", color="burlywood", weight=3]; 835[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not True))",fontsize=16,color="black",shape="box"];835 -> 869[label="",style="solid", color="black", weight=3]; 836[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="black",shape="triangle"];836 -> 870[label="",style="solid", color="black", weight=3]; 837[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];837 -> 871[label="",style="solid", color="black", weight=3]; 1600[label="absReal1 (Pos (Succ vuz104)) False",fontsize=16,color="black",shape="box"];1600 -> 1655[label="",style="solid", color="black", weight=3]; 1601[label="vuz104",fontsize=16,color="green",shape="box"];933[label="absReal0 (Pos Zero) True",fontsize=16,color="black",shape="box"];933 -> 962[label="",style="solid", color="black", weight=3]; 934[label="primNegInt (Neg (Succ vuz3200))",fontsize=16,color="black",shape="triangle"];934 -> 963[label="",style="solid", color="black", weight=3]; 1756[label="absReal1 (Neg (Succ vuz112)) True",fontsize=16,color="black",shape="box"];1756 -> 1792[label="",style="solid", color="black", weight=3]; 940[label="`negate` Neg Zero",fontsize=16,color="black",shape="box"];940 -> 969[label="",style="solid", color="black", weight=3]; 941[label="primModNatS0 (Succ vuz71000) (Succ vuz70000) (primGEqNatS (Succ vuz71000) (Succ vuz70000))",fontsize=16,color="black",shape="box"];941 -> 970[label="",style="solid", color="black", weight=3]; 942[label="primModNatS0 (Succ vuz71000) Zero (primGEqNatS (Succ vuz71000) Zero)",fontsize=16,color="black",shape="box"];942 -> 971[label="",style="solid", color="black", weight=3]; 943[label="primModNatS0 Zero (Succ vuz70000) (primGEqNatS Zero (Succ vuz70000))",fontsize=16,color="black",shape="box"];943 -> 972[label="",style="solid", color="black", weight=3]; 944[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];944 -> 973[label="",style="solid", color="black", weight=3]; 2192[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) (Succ vuz1390) == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) (Succ vuz1390) == LT)))",fontsize=16,color="black",shape="box"];2192 -> 2285[label="",style="solid", color="black", weight=3]; 2193[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) Zero == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) Zero == LT)))",fontsize=16,color="black",shape="box"];2193 -> 2286[label="",style="solid", color="black", weight=3]; 2194[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero (Succ vuz1390) == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero (Succ vuz1390) == LT)))",fontsize=16,color="black",shape="box"];2194 -> 2287[label="",style="solid", color="black", weight=3]; 2195[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero Zero == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2195 -> 2288[label="",style="solid", color="black", weight=3]; 863 -> 1122[label="",style="dashed", color="red", weight=0]; 863[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz38000)) == vuz62) (abs (Integer vuz300)) (Integer (Pos (Succ vuz38000)))",fontsize=16,color="magenta"];863 -> 1123[label="",style="dashed", color="magenta", weight=3]; 863 -> 1124[label="",style="dashed", color="magenta", weight=3]; 864[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not True))",fontsize=16,color="black",shape="box"];864 -> 978[label="",style="solid", color="black", weight=3]; 865[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];865 -> 979[label="",style="solid", color="black", weight=3]; 866[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) otherwise == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg (Succ vuz38000))) otherwise)",fontsize=16,color="black",shape="box"];866 -> 980[label="",style="solid", color="black", weight=3]; 2336[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) (Succ vuz1490) == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) (Succ vuz1490) == LT)))",fontsize=16,color="black",shape="box"];2336 -> 2384[label="",style="solid", color="black", weight=3]; 2337[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) Zero == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) Zero == LT)))",fontsize=16,color="black",shape="box"];2337 -> 2385[label="",style="solid", color="black", weight=3]; 2338[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero (Succ vuz1490) == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero (Succ vuz1490) == LT)))",fontsize=16,color="black",shape="box"];2338 -> 2386[label="",style="solid", color="black", weight=3]; 2339[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero Zero == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2339 -> 2387[label="",style="solid", color="black", weight=3]; 869[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) False)",fontsize=16,color="black",shape="box"];869 -> 985[label="",style="solid", color="black", weight=3]; 870[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];870 -> 986[label="",style="solid", color="black", weight=3]; 871 -> 836[label="",style="dashed", color="red", weight=0]; 871[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="magenta"];1655[label="absReal0 (Pos (Succ vuz104)) otherwise",fontsize=16,color="black",shape="box"];1655 -> 1696[label="",style="solid", color="black", weight=3]; 962[label="`negate` Pos Zero",fontsize=16,color="black",shape="box"];962 -> 1002[label="",style="solid", color="black", weight=3]; 963[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];1792[label="Neg (Succ vuz112)",fontsize=16,color="green",shape="box"];969[label="primNegInt (Neg Zero)",fontsize=16,color="black",shape="triangle"];969 -> 1008[label="",style="solid", color="black", weight=3]; 970 -> 2415[label="",style="dashed", color="red", weight=0]; 970[label="primModNatS0 (Succ vuz71000) (Succ vuz70000) (primGEqNatS vuz71000 vuz70000)",fontsize=16,color="magenta"];970 -> 2416[label="",style="dashed", color="magenta", weight=3]; 970 -> 2417[label="",style="dashed", color="magenta", weight=3]; 970 -> 2418[label="",style="dashed", color="magenta", weight=3]; 970 -> 2419[label="",style="dashed", color="magenta", weight=3]; 971[label="primModNatS0 (Succ vuz71000) Zero True",fontsize=16,color="black",shape="box"];971 -> 1011[label="",style="solid", color="black", weight=3]; 972[label="primModNatS0 Zero (Succ vuz70000) False",fontsize=16,color="black",shape="box"];972 -> 1012[label="",style="solid", color="black", weight=3]; 973[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];973 -> 1013[label="",style="solid", color="black", weight=3]; 2285 -> 2120[label="",style="dashed", color="red", weight=0]; 2285[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz1380 vuz1390 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz1380 vuz1390 == LT)))",fontsize=16,color="magenta"];2285 -> 2340[label="",style="dashed", color="magenta", weight=3]; 2285 -> 2341[label="",style="dashed", color="magenta", weight=3]; 2286 -> 754[label="",style="dashed", color="red", weight=0]; 2286[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (GT == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (GT == LT)))",fontsize=16,color="magenta"];2286 -> 2342[label="",style="dashed", color="magenta", weight=3]; 2286 -> 2343[label="",style="dashed", color="magenta", weight=3]; 2286 -> 2344[label="",style="dashed", color="magenta", weight=3]; 2286 -> 2345[label="",style="dashed", color="magenta", weight=3]; 2287[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (LT == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (LT == LT)))",fontsize=16,color="black",shape="box"];2287 -> 2346[label="",style="solid", color="black", weight=3]; 2288[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (EQ == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2288 -> 2347[label="",style="solid", color="black", weight=3]; 1123[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1124 -> 215[label="",style="dashed", color="red", weight=0]; 1124[label="Integer (Pos (Succ vuz38000)) == vuz62",fontsize=16,color="magenta"];1124 -> 1141[label="",style="dashed", color="magenta", weight=3]; 1124 -> 1142[label="",style="dashed", color="magenta", weight=3]; 1122[label="Integer vuz290 `quot` gcd0Gcd'1 vuz93 (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="burlywood",shape="triangle"];3560[label="vuz93/False",fontsize=10,color="white",style="solid",shape="box"];1122 -> 3560[label="",style="solid", color="burlywood", weight=9]; 3560 -> 1143[label="",style="solid", color="burlywood", weight=3]; 3561[label="vuz93/True",fontsize=10,color="white",style="solid",shape="box"];1122 -> 3561[label="",style="solid", color="burlywood", weight=9]; 3561 -> 1144[label="",style="solid", color="burlywood", weight=3]; 978[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) False)",fontsize=16,color="black",shape="box"];978 -> 1022[label="",style="solid", color="black", weight=3]; 979 -> 1122[label="",style="dashed", color="red", weight=0]; 979[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos Zero) == vuz62) (abs (Integer vuz300)) (Integer (Pos Zero))",fontsize=16,color="magenta"];979 -> 1127[label="",style="dashed", color="magenta", weight=3]; 979 -> 1128[label="",style="dashed", color="magenta", weight=3]; 980[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) True == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];980 -> 1026[label="",style="solid", color="black", weight=3]; 2384 -> 2222[label="",style="dashed", color="red", weight=0]; 2384[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz1480 vuz1490 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz1480 vuz1490 == LT)))",fontsize=16,color="magenta"];2384 -> 2456[label="",style="dashed", color="magenta", weight=3]; 2384 -> 2457[label="",style="dashed", color="magenta", weight=3]; 2385[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (GT == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (GT == LT)))",fontsize=16,color="black",shape="box"];2385 -> 2458[label="",style="solid", color="black", weight=3]; 2386 -> 759[label="",style="dashed", color="red", weight=0]; 2386[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (LT == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (LT == LT)))",fontsize=16,color="magenta"];2386 -> 2459[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2460[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2461[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2462[label="",style="dashed", color="magenta", weight=3]; 2387[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (EQ == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2387 -> 2463[label="",style="solid", color="black", weight=3]; 985[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg Zero)) otherwise)",fontsize=16,color="black",shape="box"];985 -> 1031[label="",style="solid", color="black", weight=3]; 986 -> 1122[label="",style="dashed", color="red", weight=0]; 986[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Neg Zero) == vuz62) (abs (Integer vuz300)) (Integer (Neg Zero))",fontsize=16,color="magenta"];986 -> 1129[label="",style="dashed", color="magenta", weight=3]; 986 -> 1130[label="",style="dashed", color="magenta", weight=3]; 1696[label="absReal0 (Pos (Succ vuz104)) True",fontsize=16,color="black",shape="box"];1696 -> 1742[label="",style="solid", color="black", weight=3]; 1002[label="primNegInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];1002 -> 1042[label="",style="solid", color="black", weight=3]; 1008[label="Pos Zero",fontsize=16,color="green",shape="box"];2416[label="vuz70000",fontsize=16,color="green",shape="box"];2417[label="vuz71000",fontsize=16,color="green",shape="box"];2418[label="vuz71000",fontsize=16,color="green",shape="box"];2419[label="vuz70000",fontsize=16,color="green",shape="box"];2415[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS vuz157 vuz158)",fontsize=16,color="burlywood",shape="triangle"];3562[label="vuz157/Succ vuz1570",fontsize=10,color="white",style="solid",shape="box"];2415 -> 3562[label="",style="solid", color="burlywood", weight=9]; 3562 -> 2464[label="",style="solid", color="burlywood", weight=3]; 3563[label="vuz157/Zero",fontsize=10,color="white",style="solid",shape="box"];2415 -> 3563[label="",style="solid", color="burlywood", weight=9]; 3563 -> 2465[label="",style="solid", color="burlywood", weight=3]; 1011 -> 784[label="",style="dashed", color="red", weight=0]; 1011[label="primModNatS (primMinusNatS (Succ vuz71000) Zero) (Succ Zero)",fontsize=16,color="magenta"];1011 -> 1052[label="",style="dashed", color="magenta", weight=3]; 1011 -> 1053[label="",style="dashed", color="magenta", weight=3]; 1012[label="Succ Zero",fontsize=16,color="green",shape="box"];1013 -> 784[label="",style="dashed", color="red", weight=0]; 1013[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1013 -> 1054[label="",style="dashed", color="magenta", weight=3]; 1013 -> 1055[label="",style="dashed", color="magenta", weight=3]; 2340[label="vuz1390",fontsize=16,color="green",shape="box"];2341[label="vuz1380",fontsize=16,color="green",shape="box"];2342[label="vuz141",fontsize=16,color="green",shape="box"];2343[label="vuz140",fontsize=16,color="green",shape="box"];2344[label="vuz137",fontsize=16,color="green",shape="box"];2345[label="vuz136",fontsize=16,color="green",shape="box"];2346[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not True) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not True))",fontsize=16,color="black",shape="box"];2346 -> 2388[label="",style="solid", color="black", weight=3]; 2347 -> 790[label="",style="dashed", color="red", weight=0]; 2347[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not False) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not False))",fontsize=16,color="magenta"];2347 -> 2389[label="",style="dashed", color="magenta", weight=3]; 2347 -> 2390[label="",style="dashed", color="magenta", weight=3]; 2347 -> 2391[label="",style="dashed", color="magenta", weight=3]; 2347 -> 2392[label="",style="dashed", color="magenta", weight=3]; 1141[label="vuz62",fontsize=16,color="green",shape="box"];1142[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1143[label="Integer vuz290 `quot` gcd0Gcd'1 False (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1143 -> 1190[label="",style="solid", color="black", weight=3]; 1144[label="Integer vuz290 `quot` gcd0Gcd'1 True (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1144 -> 1191[label="",style="solid", color="black", weight=3]; 1022[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Pos Zero)) otherwise)",fontsize=16,color="black",shape="box"];1022 -> 1067[label="",style="solid", color="black", weight=3]; 1127[label="Pos Zero",fontsize=16,color="green",shape="box"];1128 -> 215[label="",style="dashed", color="red", weight=0]; 1128[label="Integer (Pos Zero) == vuz62",fontsize=16,color="magenta"];1128 -> 1145[label="",style="dashed", color="magenta", weight=3]; 1128 -> 1146[label="",style="dashed", color="magenta", weight=3]; 1026[label="Integer vuz290 `quot` gcd0Gcd'1 (`negate` Integer (Neg (Succ vuz38000)) == vuz62) (abs (Integer vuz300)) (`negate` Integer (Neg (Succ vuz38000)))",fontsize=16,color="black",shape="box"];1026 -> 1072[label="",style="solid", color="black", weight=3]; 2456[label="vuz1480",fontsize=16,color="green",shape="box"];2457[label="vuz1490",fontsize=16,color="green",shape="box"];2458[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not False) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not False))",fontsize=16,color="black",shape="triangle"];2458 -> 2470[label="",style="solid", color="black", weight=3]; 2459[label="vuz151",fontsize=16,color="green",shape="box"];2460[label="vuz147",fontsize=16,color="green",shape="box"];2461[label="vuz150",fontsize=16,color="green",shape="box"];2462[label="vuz146",fontsize=16,color="green",shape="box"];2463 -> 2458[label="",style="dashed", color="red", weight=0]; 2463[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not False) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not False))",fontsize=16,color="magenta"];1031[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];1031 -> 1078[label="",style="solid", color="black", weight=3]; 1129[label="Neg Zero",fontsize=16,color="green",shape="box"];1130 -> 215[label="",style="dashed", color="red", weight=0]; 1130[label="Integer (Neg Zero) == vuz62",fontsize=16,color="magenta"];1130 -> 1147[label="",style="dashed", color="magenta", weight=3]; 1130 -> 1148[label="",style="dashed", color="magenta", weight=3]; 1742[label="`negate` Pos (Succ vuz104)",fontsize=16,color="black",shape="box"];1742 -> 1753[label="",style="solid", color="black", weight=3]; 1042[label="Neg Zero",fontsize=16,color="green",shape="box"];2464[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS (Succ vuz1570) vuz158)",fontsize=16,color="burlywood",shape="box"];3564[label="vuz158/Succ vuz1580",fontsize=10,color="white",style="solid",shape="box"];2464 -> 3564[label="",style="solid", color="burlywood", weight=9]; 3564 -> 2471[label="",style="solid", color="burlywood", weight=3]; 3565[label="vuz158/Zero",fontsize=10,color="white",style="solid",shape="box"];2464 -> 3565[label="",style="solid", color="burlywood", weight=9]; 3565 -> 2472[label="",style="solid", color="burlywood", weight=3]; 2465[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS Zero vuz158)",fontsize=16,color="burlywood",shape="box"];3566[label="vuz158/Succ vuz1580",fontsize=10,color="white",style="solid",shape="box"];2465 -> 3566[label="",style="solid", color="burlywood", weight=9]; 3566 -> 2473[label="",style="solid", color="burlywood", weight=3]; 3567[label="vuz158/Zero",fontsize=10,color="white",style="solid",shape="box"];2465 -> 3567[label="",style="solid", color="burlywood", weight=9]; 3567 -> 2474[label="",style="solid", color="burlywood", weight=3]; 1052[label="Zero",fontsize=16,color="green",shape="box"];1053 -> 1025[label="",style="dashed", color="red", weight=0]; 1053[label="primMinusNatS (Succ vuz71000) Zero",fontsize=16,color="magenta"];1053 -> 1103[label="",style="dashed", color="magenta", weight=3]; 1053 -> 1104[label="",style="dashed", color="magenta", weight=3]; 1054[label="Zero",fontsize=16,color="green",shape="box"];1055 -> 1025[label="",style="dashed", color="red", weight=0]; 1055[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];1055 -> 1105[label="",style="dashed", color="magenta", weight=3]; 1055 -> 1106[label="",style="dashed", color="magenta", weight=3]; 2388[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) False == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) False)",fontsize=16,color="black",shape="box"];2388 -> 2466[label="",style="solid", color="black", weight=3]; 2389[label="vuz141",fontsize=16,color="green",shape="box"];2390[label="vuz140",fontsize=16,color="green",shape="box"];2391[label="vuz137",fontsize=16,color="green",shape="box"];2392[label="vuz136",fontsize=16,color="green",shape="box"];1190[label="Integer vuz290 `quot` gcd0Gcd'0 (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1190 -> 1232[label="",style="solid", color="black", weight=3]; 1191[label="Integer vuz290 `quot` abs (Integer vuz300)",fontsize=16,color="black",shape="box"];1191 -> 1233[label="",style="solid", color="black", weight=3]; 1067[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];1067 -> 1119[label="",style="solid", color="black", weight=3]; 1145[label="vuz62",fontsize=16,color="green",shape="box"];1146[label="Pos Zero",fontsize=16,color="green",shape="box"];1072 -> 1122[label="",style="dashed", color="red", weight=0]; 1072[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz38000))) == vuz62) (abs (Integer vuz300)) (Integer (primNegInt (Neg (Succ vuz38000))))",fontsize=16,color="magenta"];1072 -> 1135[label="",style="dashed", color="magenta", weight=3]; 1072 -> 1136[label="",style="dashed", color="magenta", weight=3]; 2470[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) True == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) True)",fontsize=16,color="black",shape="box"];2470 -> 2518[label="",style="solid", color="black", weight=3]; 1078[label="Integer vuz290 `quot` gcd0Gcd'1 (`negate` Integer (Neg Zero) == vuz62) (abs (Integer vuz300)) (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];1078 -> 1154[label="",style="solid", color="black", weight=3]; 1147[label="vuz62",fontsize=16,color="green",shape="box"];1148[label="Neg Zero",fontsize=16,color="green",shape="box"];1753[label="primNegInt (Pos (Succ vuz104))",fontsize=16,color="black",shape="triangle"];1753 -> 1757[label="",style="solid", color="black", weight=3]; 2471[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS (Succ vuz1570) (Succ vuz1580))",fontsize=16,color="black",shape="box"];2471 -> 2519[label="",style="solid", color="black", weight=3]; 2472[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS (Succ vuz1570) Zero)",fontsize=16,color="black",shape="box"];2472 -> 2520[label="",style="solid", color="black", weight=3]; 2473[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS Zero (Succ vuz1580))",fontsize=16,color="black",shape="box"];2473 -> 2521[label="",style="solid", color="black", weight=3]; 2474[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2474 -> 2522[label="",style="solid", color="black", weight=3]; 1103[label="Succ vuz71000",fontsize=16,color="green",shape="box"];1104[label="Zero",fontsize=16,color="green",shape="box"];1105[label="Zero",fontsize=16,color="green",shape="box"];1106[label="Zero",fontsize=16,color="green",shape="box"];2466[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz137))) otherwise == vuz140) (abs (Integer vuz141)) (absReal0 (Integer (Pos (Succ vuz137))) otherwise)",fontsize=16,color="black",shape="box"];2466 -> 2475[label="",style="solid", color="black", weight=3]; 1232[label="Integer vuz290 `quot` gcd0Gcd' (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1232 -> 1276[label="",style="solid", color="black", weight=3]; 1233[label="Integer vuz290 `quot` absReal (Integer vuz300)",fontsize=16,color="black",shape="box"];1233 -> 1277[label="",style="solid", color="black", weight=3]; 1119[label="Integer vuz290 `quot` gcd0Gcd'1 (`negate` Integer (Pos Zero) == vuz62) (abs (Integer vuz300)) (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];1119 -> 1184[label="",style="solid", color="black", weight=3]; 1135 -> 934[label="",style="dashed", color="red", weight=0]; 1135[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1135 -> 1185[label="",style="dashed", color="magenta", weight=3]; 1136 -> 215[label="",style="dashed", color="red", weight=0]; 1136[label="Integer (primNegInt (Neg (Succ vuz38000))) == vuz62",fontsize=16,color="magenta"];1136 -> 1186[label="",style="dashed", color="magenta", weight=3]; 1136 -> 1187[label="",style="dashed", color="magenta", weight=3]; 2518 -> 1122[label="",style="dashed", color="red", weight=0]; 2518[label="Integer vuz146 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz147)) == vuz150) (abs (Integer vuz151)) (Integer (Neg (Succ vuz147)))",fontsize=16,color="magenta"];2518 -> 2556[label="",style="dashed", color="magenta", weight=3]; 2518 -> 2557[label="",style="dashed", color="magenta", weight=3]; 2518 -> 2558[label="",style="dashed", color="magenta", weight=3]; 2518 -> 2559[label="",style="dashed", color="magenta", weight=3]; 1154 -> 1122[label="",style="dashed", color="red", weight=0]; 1154[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) == vuz62) (abs (Integer vuz300)) (Integer (primNegInt (Neg Zero)))",fontsize=16,color="magenta"];1154 -> 1197[label="",style="dashed", color="magenta", weight=3]; 1154 -> 1198[label="",style="dashed", color="magenta", weight=3]; 1757[label="Neg (Succ vuz104)",fontsize=16,color="green",shape="box"];2519 -> 2415[label="",style="dashed", color="red", weight=0]; 2519[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS vuz1570 vuz1580)",fontsize=16,color="magenta"];2519 -> 2560[label="",style="dashed", color="magenta", weight=3]; 2519 -> 2561[label="",style="dashed", color="magenta", weight=3]; 2520[label="primModNatS0 (Succ vuz155) (Succ vuz156) True",fontsize=16,color="black",shape="triangle"];2520 -> 2562[label="",style="solid", color="black", weight=3]; 2521[label="primModNatS0 (Succ vuz155) (Succ vuz156) False",fontsize=16,color="black",shape="box"];2521 -> 2563[label="",style="solid", color="black", weight=3]; 2522 -> 2520[label="",style="dashed", color="red", weight=0]; 2522[label="primModNatS0 (Succ vuz155) (Succ vuz156) True",fontsize=16,color="magenta"];2475[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz137))) True == vuz140) (abs (Integer vuz141)) (absReal0 (Integer (Pos (Succ vuz137))) True)",fontsize=16,color="black",shape="box"];2475 -> 2523[label="",style="solid", color="black", weight=3]; 1276[label="Integer vuz290 `quot` gcd0Gcd'2 (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1276 -> 1344[label="",style="solid", color="black", weight=3]; 1277[label="Integer vuz290 `quot` absReal2 (Integer vuz300)",fontsize=16,color="black",shape="box"];1277 -> 1345[label="",style="solid", color="black", weight=3]; 1184 -> 1122[label="",style="dashed", color="red", weight=0]; 1184[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) == vuz62) (abs (Integer vuz300)) (Integer (primNegInt (Pos Zero)))",fontsize=16,color="magenta"];1184 -> 1229[label="",style="dashed", color="magenta", weight=3]; 1184 -> 1230[label="",style="dashed", color="magenta", weight=3]; 1185[label="vuz38000",fontsize=16,color="green",shape="box"];1186[label="vuz62",fontsize=16,color="green",shape="box"];1187 -> 934[label="",style="dashed", color="red", weight=0]; 1187[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1187 -> 1231[label="",style="dashed", color="magenta", weight=3]; 2556[label="vuz151",fontsize=16,color="green",shape="box"];2557[label="Neg (Succ vuz147)",fontsize=16,color="green",shape="box"];2558[label="vuz146",fontsize=16,color="green",shape="box"];2559 -> 215[label="",style="dashed", color="red", weight=0]; 2559[label="Integer (Neg (Succ vuz147)) == vuz150",fontsize=16,color="magenta"];2559 -> 2590[label="",style="dashed", color="magenta", weight=3]; 2559 -> 2591[label="",style="dashed", color="magenta", weight=3]; 1197 -> 969[label="",style="dashed", color="red", weight=0]; 1197[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];1198 -> 215[label="",style="dashed", color="red", weight=0]; 1198[label="Integer (primNegInt (Neg Zero)) == vuz62",fontsize=16,color="magenta"];1198 -> 1241[label="",style="dashed", color="magenta", weight=3]; 1198 -> 1242[label="",style="dashed", color="magenta", weight=3]; 2560[label="vuz1580",fontsize=16,color="green",shape="box"];2561[label="vuz1570",fontsize=16,color="green",shape="box"];2562 -> 784[label="",style="dashed", color="red", weight=0]; 2562[label="primModNatS (primMinusNatS (Succ vuz155) (Succ vuz156)) (Succ (Succ vuz156))",fontsize=16,color="magenta"];2562 -> 2592[label="",style="dashed", color="magenta", weight=3]; 2562 -> 2593[label="",style="dashed", color="magenta", weight=3]; 2563[label="Succ (Succ vuz155)",fontsize=16,color="green",shape="box"];2523[label="Integer vuz136 `quot` gcd0Gcd'1 (`negate` Integer (Pos (Succ vuz137)) == vuz140) (abs (Integer vuz141)) (`negate` Integer (Pos (Succ vuz137)))",fontsize=16,color="black",shape="box"];2523 -> 2564[label="",style="solid", color="black", weight=3]; 1344 -> 1381[label="",style="dashed", color="red", weight=0]; 1344[label="Integer vuz290 `quot` gcd0Gcd'1 (abs (Integer vuz300) `rem` Integer vuz94 == fromInt (Pos Zero)) (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="magenta"];1344 -> 1382[label="",style="dashed", color="magenta", weight=3]; 1345 -> 1387[label="",style="dashed", color="red", weight=0]; 1345[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (Integer vuz300 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];1345 -> 1388[label="",style="dashed", color="magenta", weight=3]; 1229 -> 1002[label="",style="dashed", color="red", weight=0]; 1229[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];1230 -> 215[label="",style="dashed", color="red", weight=0]; 1230[label="Integer (primNegInt (Pos Zero)) == vuz62",fontsize=16,color="magenta"];1230 -> 1274[label="",style="dashed", color="magenta", weight=3]; 1230 -> 1275[label="",style="dashed", color="magenta", weight=3]; 1231[label="vuz38000",fontsize=16,color="green",shape="box"];2590[label="vuz150",fontsize=16,color="green",shape="box"];2591[label="Neg (Succ vuz147)",fontsize=16,color="green",shape="box"];1241[label="vuz62",fontsize=16,color="green",shape="box"];1242 -> 969[label="",style="dashed", color="red", weight=0]; 1242[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2592[label="Succ vuz156",fontsize=16,color="green",shape="box"];2593 -> 1025[label="",style="dashed", color="red", weight=0]; 2593[label="primMinusNatS (Succ vuz155) (Succ vuz156)",fontsize=16,color="magenta"];2593 -> 2623[label="",style="dashed", color="magenta", weight=3]; 2593 -> 2624[label="",style="dashed", color="magenta", weight=3]; 2564 -> 1122[label="",style="dashed", color="red", weight=0]; 2564[label="Integer vuz136 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz137))) == vuz140) (abs (Integer vuz141)) (Integer (primNegInt (Pos (Succ vuz137))))",fontsize=16,color="magenta"];2564 -> 2594[label="",style="dashed", color="magenta", weight=3]; 2564 -> 2595[label="",style="dashed", color="magenta", weight=3]; 2564 -> 2596[label="",style="dashed", color="magenta", weight=3]; 2564 -> 2597[label="",style="dashed", color="magenta", weight=3]; 1382 -> 13[label="",style="dashed", color="red", weight=0]; 1382[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1381[label="Integer vuz290 `quot` gcd0Gcd'1 (abs (Integer vuz300) `rem` Integer vuz94 == vuz101) (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1381 -> 1393[label="",style="solid", color="black", weight=3]; 1388 -> 13[label="",style="dashed", color="red", weight=0]; 1388[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1387[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (Integer vuz300 >= vuz102)",fontsize=16,color="black",shape="triangle"];1387 -> 1394[label="",style="solid", color="black", weight=3]; 1274[label="vuz62",fontsize=16,color="green",shape="box"];1275 -> 1002[label="",style="dashed", color="red", weight=0]; 1275[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];2623[label="Succ vuz155",fontsize=16,color="green",shape="box"];2624[label="Succ vuz156",fontsize=16,color="green",shape="box"];2594[label="vuz141",fontsize=16,color="green",shape="box"];2595 -> 1753[label="",style="dashed", color="red", weight=0]; 2595[label="primNegInt (Pos (Succ vuz137))",fontsize=16,color="magenta"];2595 -> 2625[label="",style="dashed", color="magenta", weight=3]; 2596[label="vuz136",fontsize=16,color="green",shape="box"];2597 -> 215[label="",style="dashed", color="red", weight=0]; 2597[label="Integer (primNegInt (Pos (Succ vuz137))) == vuz140",fontsize=16,color="magenta"];2597 -> 2626[label="",style="dashed", color="magenta", weight=3]; 2597 -> 2627[label="",style="dashed", color="magenta", weight=3]; 1393[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal (Integer vuz300) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1393 -> 1431[label="",style="solid", color="black", weight=3]; 1394[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (compare (Integer vuz300) vuz102 /= LT)",fontsize=16,color="black",shape="box"];1394 -> 1432[label="",style="solid", color="black", weight=3]; 2625[label="vuz137",fontsize=16,color="green",shape="box"];2626[label="vuz140",fontsize=16,color="green",shape="box"];2627 -> 1753[label="",style="dashed", color="red", weight=0]; 2627[label="primNegInt (Pos (Succ vuz137))",fontsize=16,color="magenta"];2627 -> 2657[label="",style="dashed", color="magenta", weight=3]; 1431[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal2 (Integer vuz300) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal2 (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1431 -> 1467[label="",style="solid", color="black", weight=3]; 1432[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (not (compare (Integer vuz300) vuz102 == LT))",fontsize=16,color="burlywood",shape="box"];3568[label="vuz102/Integer vuz1020",fontsize=10,color="white",style="solid",shape="box"];1432 -> 3568[label="",style="solid", color="burlywood", weight=9]; 3568 -> 1468[label="",style="solid", color="burlywood", weight=3]; 2657[label="vuz137",fontsize=16,color="green",shape="box"];1467 -> 1506[label="",style="dashed", color="red", weight=0]; 1467[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (Integer vuz300 >= fromInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (Integer vuz300 >= fromInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1467 -> 1507[label="",style="dashed", color="magenta", weight=3]; 1467 -> 1508[label="",style="dashed", color="magenta", weight=3]; 1468[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (not (compare (Integer vuz300) (Integer vuz1020) == LT))",fontsize=16,color="black",shape="box"];1468 -> 1513[label="",style="solid", color="black", weight=3]; 1507 -> 13[label="",style="dashed", color="red", weight=0]; 1507[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1508 -> 13[label="",style="dashed", color="red", weight=0]; 1508[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1506[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (Integer vuz300 >= vuz108) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (Integer vuz300 >= vuz107) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1506 -> 1545[label="",style="solid", color="black", weight=3]; 1513[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (not (primCmpInt vuz300 vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3569[label="vuz300/Pos vuz3000",fontsize=10,color="white",style="solid",shape="box"];1513 -> 3569[label="",style="solid", color="burlywood", weight=9]; 3569 -> 1546[label="",style="solid", color="burlywood", weight=3]; 3570[label="vuz300/Neg vuz3000",fontsize=10,color="white",style="solid",shape="box"];1513 -> 3570[label="",style="solid", color="burlywood", weight=9]; 3570 -> 1547[label="",style="solid", color="burlywood", weight=3]; 1545[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (compare (Integer vuz300) vuz108 /= LT) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (compare (Integer vuz300) vuz108 /= LT) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1545 -> 1584[label="",style="solid", color="black", weight=3]; 1546[label="Integer vuz290 `quot` absReal1 (Integer (Pos vuz3000)) (not (primCmpInt (Pos vuz3000) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3571[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1546 -> 3571[label="",style="solid", color="burlywood", weight=9]; 3571 -> 1585[label="",style="solid", color="burlywood", weight=3]; 3572[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1546 -> 3572[label="",style="solid", color="burlywood", weight=9]; 3572 -> 1586[label="",style="solid", color="burlywood", weight=3]; 1547[label="Integer vuz290 `quot` absReal1 (Integer (Neg vuz3000)) (not (primCmpInt (Neg vuz3000) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3573[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1547 -> 3573[label="",style="solid", color="burlywood", weight=9]; 3573 -> 1587[label="",style="solid", color="burlywood", weight=3]; 3574[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1547 -> 3574[label="",style="solid", color="burlywood", weight=9]; 3574 -> 1588[label="",style="solid", color="burlywood", weight=3]; 1584[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (not (compare (Integer vuz300) vuz108 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (not (compare (Integer vuz300) vuz108 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3575[label="vuz108/Integer vuz1080",fontsize=10,color="white",style="solid",shape="box"];1584 -> 3575[label="",style="solid", color="burlywood", weight=9]; 3575 -> 1614[label="",style="solid", color="burlywood", weight=3]; 1585[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3576[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1585 -> 3576[label="",style="solid", color="burlywood", weight=9]; 3576 -> 1615[label="",style="solid", color="burlywood", weight=3]; 3577[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1585 -> 3577[label="",style="solid", color="burlywood", weight=9]; 3577 -> 1616[label="",style="solid", color="burlywood", weight=3]; 1586[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3578[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1586 -> 3578[label="",style="solid", color="burlywood", weight=9]; 3578 -> 1617[label="",style="solid", color="burlywood", weight=3]; 3579[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1586 -> 3579[label="",style="solid", color="burlywood", weight=9]; 3579 -> 1618[label="",style="solid", color="burlywood", weight=3]; 1587[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3580[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1587 -> 3580[label="",style="solid", color="burlywood", weight=9]; 3580 -> 1619[label="",style="solid", color="burlywood", weight=3]; 3581[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1587 -> 3581[label="",style="solid", color="burlywood", weight=9]; 3581 -> 1620[label="",style="solid", color="burlywood", weight=3]; 1588[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3582[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1588 -> 3582[label="",style="solid", color="burlywood", weight=9]; 3582 -> 1621[label="",style="solid", color="burlywood", weight=3]; 3583[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1588 -> 3583[label="",style="solid", color="burlywood", weight=9]; 3583 -> 1622[label="",style="solid", color="burlywood", weight=3]; 1614[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (not (compare (Integer vuz300) (Integer vuz1080) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (not (compare (Integer vuz300) (Integer vuz1080) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1614 -> 1672[label="",style="solid", color="black", weight=3]; 1615[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1615 -> 1673[label="",style="solid", color="black", weight=3]; 1616[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1616 -> 1674[label="",style="solid", color="black", weight=3]; 1617[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3584[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1617 -> 3584[label="",style="solid", color="burlywood", weight=9]; 3584 -> 1675[label="",style="solid", color="burlywood", weight=3]; 3585[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1617 -> 3585[label="",style="solid", color="burlywood", weight=9]; 3585 -> 1676[label="",style="solid", color="burlywood", weight=3]; 1618[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3586[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1618 -> 3586[label="",style="solid", color="burlywood", weight=9]; 3586 -> 1677[label="",style="solid", color="burlywood", weight=3]; 3587[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1618 -> 3587[label="",style="solid", color="burlywood", weight=9]; 3587 -> 1678[label="",style="solid", color="burlywood", weight=3]; 1619[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1619 -> 1679[label="",style="solid", color="black", weight=3]; 1620[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1620 -> 1680[label="",style="solid", color="black", weight=3]; 1621[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3588[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1621 -> 3588[label="",style="solid", color="burlywood", weight=9]; 3588 -> 1681[label="",style="solid", color="burlywood", weight=3]; 3589[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1621 -> 3589[label="",style="solid", color="burlywood", weight=9]; 3589 -> 1682[label="",style="solid", color="burlywood", weight=3]; 1622[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3590[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1622 -> 3590[label="",style="solid", color="burlywood", weight=9]; 3590 -> 1683[label="",style="solid", color="burlywood", weight=3]; 3591[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1622 -> 3591[label="",style="solid", color="burlywood", weight=9]; 3591 -> 1684[label="",style="solid", color="burlywood", weight=3]; 1672[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (not (primCmpInt vuz300 vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (not (primCmpInt vuz300 vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3592[label="vuz300/Pos vuz3000",fontsize=10,color="white",style="solid",shape="box"];1672 -> 3592[label="",style="solid", color="burlywood", weight=9]; 3592 -> 1715[label="",style="solid", color="burlywood", weight=3]; 3593[label="vuz300/Neg vuz3000",fontsize=10,color="white",style="solid",shape="box"];1672 -> 3593[label="",style="solid", color="burlywood", weight=9]; 3593 -> 1716[label="",style="solid", color="burlywood", weight=3]; 1673 -> 2960[label="",style="dashed", color="red", weight=0]; 1673[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpNat (Succ vuz30000) vuz10200 == LT))",fontsize=16,color="magenta"];1673 -> 2961[label="",style="dashed", color="magenta", weight=3]; 1673 -> 2962[label="",style="dashed", color="magenta", weight=3]; 1673 -> 2963[label="",style="dashed", color="magenta", weight=3]; 1673 -> 2964[label="",style="dashed", color="magenta", weight=3]; 1674[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];1674 -> 1719[label="",style="solid", color="black", weight=3]; 1675[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1675 -> 1720[label="",style="solid", color="black", weight=3]; 1676[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1676 -> 1721[label="",style="solid", color="black", weight=3]; 1677[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1677 -> 1722[label="",style="solid", color="black", weight=3]; 1678[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1678 -> 1723[label="",style="solid", color="black", weight=3]; 1679[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];1679 -> 1724[label="",style="solid", color="black", weight=3]; 1680 -> 3005[label="",style="dashed", color="red", weight=0]; 1680[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpNat vuz10200 (Succ vuz30000) == LT))",fontsize=16,color="magenta"];1680 -> 3006[label="",style="dashed", color="magenta", weight=3]; 1680 -> 3007[label="",style="dashed", color="magenta", weight=3]; 1680 -> 3008[label="",style="dashed", color="magenta", weight=3]; 1680 -> 3009[label="",style="dashed", color="magenta", weight=3]; 1681[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1681 -> 1727[label="",style="solid", color="black", weight=3]; 1682[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1682 -> 1728[label="",style="solid", color="black", weight=3]; 1683[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1683 -> 1729[label="",style="solid", color="black", weight=3]; 1684[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1684 -> 1730[label="",style="solid", color="black", weight=3]; 1715[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3000)) (not (primCmpInt (Pos vuz3000) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos vuz3000)) (not (primCmpInt (Pos vuz3000) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3594[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3594[label="",style="solid", color="burlywood", weight=9]; 3594 -> 1765[label="",style="solid", color="burlywood", weight=3]; 3595[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3595[label="",style="solid", color="burlywood", weight=9]; 3595 -> 1766[label="",style="solid", color="burlywood", weight=3]; 1716[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3000)) (not (primCmpInt (Neg vuz3000) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg vuz3000)) (not (primCmpInt (Neg vuz3000) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3596[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3596[label="",style="solid", color="burlywood", weight=9]; 3596 -> 1767[label="",style="solid", color="burlywood", weight=3]; 3597[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3597[label="",style="solid", color="burlywood", weight=9]; 3597 -> 1768[label="",style="solid", color="burlywood", weight=3]; 2961[label="vuz290",fontsize=16,color="green",shape="box"];2962[label="vuz30000",fontsize=16,color="green",shape="box"];2963[label="Succ vuz30000",fontsize=16,color="green",shape="box"];2964[label="vuz10200",fontsize=16,color="green",shape="box"];2960[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat vuz174 vuz175 == LT))",fontsize=16,color="burlywood",shape="triangle"];3598[label="vuz174/Succ vuz1740",fontsize=10,color="white",style="solid",shape="box"];2960 -> 3598[label="",style="solid", color="burlywood", weight=9]; 3598 -> 3001[label="",style="solid", color="burlywood", weight=3]; 3599[label="vuz174/Zero",fontsize=10,color="white",style="solid",shape="box"];2960 -> 3599[label="",style="solid", color="burlywood", weight=9]; 3599 -> 3002[label="",style="solid", color="burlywood", weight=3]; 1719[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not False)",fontsize=16,color="black",shape="triangle"];1719 -> 1771[label="",style="solid", color="black", weight=3]; 1720[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz102000) == LT))",fontsize=16,color="black",shape="box"];1720 -> 1772[label="",style="solid", color="black", weight=3]; 1721[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1721 -> 1773[label="",style="solid", color="black", weight=3]; 1722[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1722 -> 1774[label="",style="solid", color="black", weight=3]; 1723 -> 1721[label="",style="dashed", color="red", weight=0]; 1723[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1724[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not True)",fontsize=16,color="black",shape="box"];1724 -> 1775[label="",style="solid", color="black", weight=3]; 3006[label="vuz290",fontsize=16,color="green",shape="box"];3007[label="Succ vuz30000",fontsize=16,color="green",shape="box"];3008[label="vuz10200",fontsize=16,color="green",shape="box"];3009[label="vuz30000",fontsize=16,color="green",shape="box"];3005[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat vuz179 vuz180 == LT))",fontsize=16,color="burlywood",shape="triangle"];3600[label="vuz179/Succ vuz1790",fontsize=10,color="white",style="solid",shape="box"];3005 -> 3600[label="",style="solid", color="burlywood", weight=9]; 3600 -> 3046[label="",style="solid", color="burlywood", weight=3]; 3601[label="vuz179/Zero",fontsize=10,color="white",style="solid",shape="box"];3005 -> 3601[label="",style="solid", color="burlywood", weight=9]; 3601 -> 3047[label="",style="solid", color="burlywood", weight=3]; 1727[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1727 -> 1778[label="",style="solid", color="black", weight=3]; 1728[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1728 -> 1779[label="",style="solid", color="black", weight=3]; 1729[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz102000) Zero == LT))",fontsize=16,color="black",shape="box"];1729 -> 1780[label="",style="solid", color="black", weight=3]; 1730 -> 1728[label="",style="dashed", color="red", weight=0]; 1730[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1765[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3602[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1765 -> 3602[label="",style="solid", color="burlywood", weight=9]; 3602 -> 1801[label="",style="solid", color="burlywood", weight=3]; 3603[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1765 -> 3603[label="",style="solid", color="burlywood", weight=9]; 3603 -> 1802[label="",style="solid", color="burlywood", weight=3]; 1766[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3604[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1766 -> 3604[label="",style="solid", color="burlywood", weight=9]; 3604 -> 1803[label="",style="solid", color="burlywood", weight=3]; 3605[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1766 -> 3605[label="",style="solid", color="burlywood", weight=9]; 3605 -> 1804[label="",style="solid", color="burlywood", weight=3]; 1767[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3606[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1767 -> 3606[label="",style="solid", color="burlywood", weight=9]; 3606 -> 1805[label="",style="solid", color="burlywood", weight=3]; 3607[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1767 -> 3607[label="",style="solid", color="burlywood", weight=9]; 3607 -> 1806[label="",style="solid", color="burlywood", weight=3]; 1768[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3608[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1768 -> 3608[label="",style="solid", color="burlywood", weight=9]; 3608 -> 1807[label="",style="solid", color="burlywood", weight=3]; 3609[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1768 -> 3609[label="",style="solid", color="burlywood", weight=9]; 3609 -> 1808[label="",style="solid", color="burlywood", weight=3]; 3001[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat (Succ vuz1740) vuz175 == LT))",fontsize=16,color="burlywood",shape="box"];3610[label="vuz175/Succ vuz1750",fontsize=10,color="white",style="solid",shape="box"];3001 -> 3610[label="",style="solid", color="burlywood", weight=9]; 3610 -> 3048[label="",style="solid", color="burlywood", weight=3]; 3611[label="vuz175/Zero",fontsize=10,color="white",style="solid",shape="box"];3001 -> 3611[label="",style="solid", color="burlywood", weight=9]; 3611 -> 3049[label="",style="solid", color="burlywood", weight=3]; 3002[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat Zero vuz175 == LT))",fontsize=16,color="burlywood",shape="box"];3612[label="vuz175/Succ vuz1750",fontsize=10,color="white",style="solid",shape="box"];3002 -> 3612[label="",style="solid", color="burlywood", weight=9]; 3612 -> 3050[label="",style="solid", color="burlywood", weight=3]; 3613[label="vuz175/Zero",fontsize=10,color="white",style="solid",shape="box"];3002 -> 3613[label="",style="solid", color="burlywood", weight=9]; 3613 -> 3051[label="",style="solid", color="burlywood", weight=3]; 1771[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) True",fontsize=16,color="black",shape="box"];1771 -> 1811[label="",style="solid", color="black", weight=3]; 1772[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1772 -> 1812[label="",style="solid", color="black", weight=3]; 1773[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1773 -> 1813[label="",style="solid", color="black", weight=3]; 1774 -> 1773[label="",style="dashed", color="red", weight=0]; 1774[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];1775[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) False",fontsize=16,color="black",shape="box"];1775 -> 1814[label="",style="solid", color="black", weight=3]; 3046[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat (Succ vuz1790) vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3614[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3046 -> 3614[label="",style="solid", color="burlywood", weight=9]; 3614 -> 3067[label="",style="solid", color="burlywood", weight=3]; 3615[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3046 -> 3615[label="",style="solid", color="burlywood", weight=9]; 3615 -> 3068[label="",style="solid", color="burlywood", weight=3]; 3047[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat Zero vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3616[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3047 -> 3616[label="",style="solid", color="burlywood", weight=9]; 3616 -> 3069[label="",style="solid", color="burlywood", weight=3]; 3617[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3047 -> 3617[label="",style="solid", color="burlywood", weight=9]; 3617 -> 3070[label="",style="solid", color="burlywood", weight=3]; 1778[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];1778 -> 1817[label="",style="solid", color="black", weight=3]; 1779[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1779 -> 1818[label="",style="solid", color="black", weight=3]; 1780[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1780 -> 1819[label="",style="solid", color="black", weight=3]; 1801[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1801 -> 1843[label="",style="solid", color="black", weight=3]; 1802[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1802 -> 1844[label="",style="solid", color="black", weight=3]; 1803[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3618[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1803 -> 3618[label="",style="solid", color="burlywood", weight=9]; 3618 -> 1845[label="",style="solid", color="burlywood", weight=3]; 3619[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1803 -> 3619[label="",style="solid", color="burlywood", weight=9]; 3619 -> 1846[label="",style="solid", color="burlywood", weight=3]; 1804[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3620[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1804 -> 3620[label="",style="solid", color="burlywood", weight=9]; 3620 -> 1847[label="",style="solid", color="burlywood", weight=3]; 3621[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1804 -> 3621[label="",style="solid", color="burlywood", weight=9]; 3621 -> 1848[label="",style="solid", color="burlywood", weight=3]; 1805[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1805 -> 1849[label="",style="solid", color="black", weight=3]; 1806[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1806 -> 1850[label="",style="solid", color="black", weight=3]; 1807[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3622[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1807 -> 3622[label="",style="solid", color="burlywood", weight=9]; 3622 -> 1851[label="",style="solid", color="burlywood", weight=3]; 3623[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1807 -> 3623[label="",style="solid", color="burlywood", weight=9]; 3623 -> 1852[label="",style="solid", color="burlywood", weight=3]; 1808[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3624[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1808 -> 3624[label="",style="solid", color="burlywood", weight=9]; 3624 -> 1853[label="",style="solid", color="burlywood", weight=3]; 3625[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1808 -> 3625[label="",style="solid", color="burlywood", weight=9]; 3625 -> 1854[label="",style="solid", color="burlywood", weight=3]; 3048[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat (Succ vuz1740) (Succ vuz1750) == LT))",fontsize=16,color="black",shape="box"];3048 -> 3071[label="",style="solid", color="black", weight=3]; 3049[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat (Succ vuz1740) Zero == LT))",fontsize=16,color="black",shape="box"];3049 -> 3072[label="",style="solid", color="black", weight=3]; 3050[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat Zero (Succ vuz1750) == LT))",fontsize=16,color="black",shape="box"];3050 -> 3073[label="",style="solid", color="black", weight=3]; 3051[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3051 -> 3074[label="",style="solid", color="black", weight=3]; 1811 -> 2047[label="",style="dashed", color="red", weight=0]; 1811[label="Integer vuz290 `quot` Integer (Pos (Succ vuz30000))",fontsize=16,color="magenta"];1811 -> 2048[label="",style="dashed", color="magenta", weight=3]; 1812[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];1812 -> 1860[label="",style="solid", color="black", weight=3]; 1813[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];1813 -> 1861[label="",style="solid", color="black", weight=3]; 1814[label="Integer vuz290 `quot` absReal0 (Integer (Neg (Succ vuz30000))) otherwise",fontsize=16,color="black",shape="box"];1814 -> 1862[label="",style="solid", color="black", weight=3]; 3067[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat (Succ vuz1790) (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3067 -> 3089[label="",style="solid", color="black", weight=3]; 3068[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat (Succ vuz1790) Zero == LT))",fontsize=16,color="black",shape="box"];3068 -> 3090[label="",style="solid", color="black", weight=3]; 3069[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat Zero (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3069 -> 3091[label="",style="solid", color="black", weight=3]; 3070[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3070 -> 3092[label="",style="solid", color="black", weight=3]; 1817[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];1817 -> 1867[label="",style="solid", color="black", weight=3]; 1818[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1818 -> 1868[label="",style="solid", color="black", weight=3]; 1819 -> 1779[label="",style="dashed", color="red", weight=0]; 1819[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];1843 -> 3119[label="",style="dashed", color="red", weight=0]; 1843[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpNat (Succ vuz30000) vuz10800 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpNat (Succ vuz30000) vuz10800 == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1843 -> 3120[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3121[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3122[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3123[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3124[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3125[label="",style="dashed", color="magenta", weight=3]; 1844[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1844 -> 1899[label="",style="solid", color="black", weight=3]; 1845[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1845 -> 1900[label="",style="solid", color="black", weight=3]; 1846[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1846 -> 1901[label="",style="solid", color="black", weight=3]; 1847[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1847 -> 1902[label="",style="solid", color="black", weight=3]; 1848[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1848 -> 1903[label="",style="solid", color="black", weight=3]; 1849[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1849 -> 1904[label="",style="solid", color="black", weight=3]; 1850 -> 3184[label="",style="dashed", color="red", weight=0]; 1850[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpNat vuz10800 (Succ vuz30000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpNat vuz10800 (Succ vuz30000) == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1850 -> 3185[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3186[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3187[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3188[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3189[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3190[label="",style="dashed", color="magenta", weight=3]; 1851[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1851 -> 1907[label="",style="solid", color="black", weight=3]; 1852[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1852 -> 1908[label="",style="solid", color="black", weight=3]; 1853[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1853 -> 1909[label="",style="solid", color="black", weight=3]; 1854[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1854 -> 1910[label="",style="solid", color="black", weight=3]; 3071 -> 2960[label="",style="dashed", color="red", weight=0]; 3071[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat vuz1740 vuz1750 == LT))",fontsize=16,color="magenta"];3071 -> 3093[label="",style="dashed", color="magenta", weight=3]; 3071 -> 3094[label="",style="dashed", color="magenta", weight=3]; 3072 -> 1674[label="",style="dashed", color="red", weight=0]; 3072[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (GT == LT))",fontsize=16,color="magenta"];3072 -> 3095[label="",style="dashed", color="magenta", weight=3]; 3072 -> 3096[label="",style="dashed", color="magenta", weight=3]; 3073[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (LT == LT))",fontsize=16,color="black",shape="box"];3073 -> 3097[label="",style="solid", color="black", weight=3]; 3074[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3074 -> 3098[label="",style="solid", color="black", weight=3]; 2048[label="Pos (Succ vuz30000)",fontsize=16,color="green",shape="box"];2047[label="Integer vuz290 `quot` Integer vuz134",fontsize=16,color="black",shape="triangle"];2047 -> 2054[label="",style="solid", color="black", weight=3]; 1860[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];1860 -> 1916[label="",style="solid", color="black", weight=3]; 1861 -> 2047[label="",style="dashed", color="red", weight=0]; 1861[label="Integer vuz290 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];1861 -> 2049[label="",style="dashed", color="magenta", weight=3]; 1862[label="Integer vuz290 `quot` absReal0 (Integer (Neg (Succ vuz30000))) True",fontsize=16,color="black",shape="box"];1862 -> 1918[label="",style="solid", color="black", weight=3]; 3089 -> 3005[label="",style="dashed", color="red", weight=0]; 3089[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat vuz1790 vuz1800 == LT))",fontsize=16,color="magenta"];3089 -> 3110[label="",style="dashed", color="magenta", weight=3]; 3089 -> 3111[label="",style="dashed", color="magenta", weight=3]; 3090[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (GT == LT))",fontsize=16,color="black",shape="box"];3090 -> 3112[label="",style="solid", color="black", weight=3]; 3091 -> 1679[label="",style="dashed", color="red", weight=0]; 3091[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (LT == LT))",fontsize=16,color="magenta"];3091 -> 3113[label="",style="dashed", color="magenta", weight=3]; 3091 -> 3114[label="",style="dashed", color="magenta", weight=3]; 3092[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3092 -> 3115[label="",style="solid", color="black", weight=3]; 1867[label="Integer vuz290 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];1867 -> 1923[label="",style="solid", color="black", weight=3]; 1868 -> 2047[label="",style="dashed", color="red", weight=0]; 1868[label="Integer vuz290 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];1868 -> 2050[label="",style="dashed", color="magenta", weight=3]; 3120[label="vuz101",fontsize=16,color="green",shape="box"];3121[label="vuz290",fontsize=16,color="green",shape="box"];3122[label="Succ vuz30000",fontsize=16,color="green",shape="box"];3123[label="vuz30000",fontsize=16,color="green",shape="box"];3124[label="vuz94",fontsize=16,color="green",shape="box"];3125[label="vuz10800",fontsize=16,color="green",shape="box"];3119[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz184 vuz185 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz184 vuz185 == LT)) `rem` Integer vuz186)",fontsize=16,color="burlywood",shape="triangle"];3626[label="vuz184/Succ vuz1840",fontsize=10,color="white",style="solid",shape="box"];3119 -> 3626[label="",style="solid", color="burlywood", weight=9]; 3626 -> 3180[label="",style="solid", color="burlywood", weight=3]; 3627[label="vuz184/Zero",fontsize=10,color="white",style="solid",shape="box"];3119 -> 3627[label="",style="solid", color="burlywood", weight=9]; 3627 -> 3181[label="",style="solid", color="burlywood", weight=3]; 1899[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1899 -> 1975[label="",style="solid", color="black", weight=3]; 1900[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz108000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz108000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1900 -> 1976[label="",style="solid", color="black", weight=3]; 1901[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1901 -> 1977[label="",style="solid", color="black", weight=3]; 1902[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1902 -> 1978[label="",style="solid", color="black", weight=3]; 1903 -> 1901[label="",style="dashed", color="red", weight=0]; 1903[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1904[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1904 -> 1979[label="",style="solid", color="black", weight=3]; 3185[label="vuz30000",fontsize=16,color="green",shape="box"];3186[label="vuz101",fontsize=16,color="green",shape="box"];3187[label="vuz10800",fontsize=16,color="green",shape="box"];3188[label="vuz290",fontsize=16,color="green",shape="box"];3189[label="Succ vuz30000",fontsize=16,color="green",shape="box"];3190[label="vuz94",fontsize=16,color="green",shape="box"];3184[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz191 vuz192 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz191 vuz192 == LT)) `rem` Integer vuz193)",fontsize=16,color="burlywood",shape="triangle"];3628[label="vuz191/Succ vuz1910",fontsize=10,color="white",style="solid",shape="box"];3184 -> 3628[label="",style="solid", color="burlywood", weight=9]; 3628 -> 3245[label="",style="solid", color="burlywood", weight=3]; 3629[label="vuz191/Zero",fontsize=10,color="white",style="solid",shape="box"];3184 -> 3629[label="",style="solid", color="burlywood", weight=9]; 3629 -> 3246[label="",style="solid", color="burlywood", weight=3]; 1907[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1907 -> 1982[label="",style="solid", color="black", weight=3]; 1908[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1908 -> 1983[label="",style="solid", color="black", weight=3]; 1909[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz108000) Zero == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz108000) Zero == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1909 -> 1984[label="",style="solid", color="black", weight=3]; 1910 -> 1908[label="",style="dashed", color="red", weight=0]; 1910[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];3093[label="vuz1740",fontsize=16,color="green",shape="box"];3094[label="vuz1750",fontsize=16,color="green",shape="box"];3095[label="vuz172",fontsize=16,color="green",shape="box"];3096[label="vuz173",fontsize=16,color="green",shape="box"];3097[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not True)",fontsize=16,color="black",shape="box"];3097 -> 3116[label="",style="solid", color="black", weight=3]; 3098 -> 1719[label="",style="dashed", color="red", weight=0]; 3098[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not False)",fontsize=16,color="magenta"];3098 -> 3117[label="",style="dashed", color="magenta", weight=3]; 3098 -> 3118[label="",style="dashed", color="magenta", weight=3]; 2054[label="Integer (primQuotInt vuz290 vuz134)",fontsize=16,color="green",shape="box"];2054 -> 2100[label="",style="dashed", color="green", weight=3]; 1916[label="Integer vuz290 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];1916 -> 1992[label="",style="solid", color="black", weight=3]; 2049[label="Pos Zero",fontsize=16,color="green",shape="box"];1918[label="Integer vuz290 `quot` (`negate` Integer (Neg (Succ vuz30000)))",fontsize=16,color="black",shape="box"];1918 -> 1994[label="",style="solid", color="black", weight=3]; 3110[label="vuz1800",fontsize=16,color="green",shape="box"];3111[label="vuz1790",fontsize=16,color="green",shape="box"];3112[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not False)",fontsize=16,color="black",shape="triangle"];3112 -> 3182[label="",style="solid", color="black", weight=3]; 3113[label="vuz178",fontsize=16,color="green",shape="box"];3114[label="vuz177",fontsize=16,color="green",shape="box"];3115 -> 3112[label="",style="dashed", color="red", weight=0]; 3115[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not False)",fontsize=16,color="magenta"];1923[label="Integer vuz290 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1923 -> 2000[label="",style="solid", color="black", weight=3]; 2050[label="Neg Zero",fontsize=16,color="green",shape="box"];3180[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) vuz185 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) vuz185 == LT)) `rem` Integer vuz186)",fontsize=16,color="burlywood",shape="box"];3630[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3180 -> 3630[label="",style="solid", color="burlywood", weight=9]; 3630 -> 3247[label="",style="solid", color="burlywood", weight=3]; 3631[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3180 -> 3631[label="",style="solid", color="burlywood", weight=9]; 3631 -> 3248[label="",style="solid", color="burlywood", weight=3]; 3181[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero vuz185 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero vuz185 == LT)) `rem` Integer vuz186)",fontsize=16,color="burlywood",shape="box"];3632[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3181 -> 3632[label="",style="solid", color="burlywood", weight=9]; 3632 -> 3249[label="",style="solid", color="burlywood", weight=3]; 3633[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3181 -> 3633[label="",style="solid", color="burlywood", weight=9]; 3633 -> 3250[label="",style="solid", color="burlywood", weight=3]; 1975[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1975 -> 2027[label="",style="solid", color="black", weight=3]; 1976[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1976 -> 2028[label="",style="solid", color="black", weight=3]; 1977[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1977 -> 2029[label="",style="solid", color="black", weight=3]; 1978 -> 1977[label="",style="dashed", color="red", weight=0]; 1978[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];1979[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1979 -> 2030[label="",style="solid", color="black", weight=3]; 3245[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) vuz192 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) vuz192 == LT)) `rem` Integer vuz193)",fontsize=16,color="burlywood",shape="box"];3634[label="vuz192/Succ vuz1920",fontsize=10,color="white",style="solid",shape="box"];3245 -> 3634[label="",style="solid", color="burlywood", weight=9]; 3634 -> 3253[label="",style="solid", color="burlywood", weight=3]; 3635[label="vuz192/Zero",fontsize=10,color="white",style="solid",shape="box"];3245 -> 3635[label="",style="solid", color="burlywood", weight=9]; 3635 -> 3254[label="",style="solid", color="burlywood", weight=3]; 3246[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero vuz192 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero vuz192 == LT)) `rem` Integer vuz193)",fontsize=16,color="burlywood",shape="box"];3636[label="vuz192/Succ vuz1920",fontsize=10,color="white",style="solid",shape="box"];3246 -> 3636[label="",style="solid", color="burlywood", weight=9]; 3636 -> 3255[label="",style="solid", color="burlywood", weight=3]; 3637[label="vuz192/Zero",fontsize=10,color="white",style="solid",shape="box"];3246 -> 3637[label="",style="solid", color="burlywood", weight=9]; 3637 -> 3256[label="",style="solid", color="burlywood", weight=3]; 1982[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1982 -> 2033[label="",style="solid", color="black", weight=3]; 1983[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1983 -> 2034[label="",style="solid", color="black", weight=3]; 1984[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1984 -> 2035[label="",style="solid", color="black", weight=3]; 3116[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) False",fontsize=16,color="black",shape="box"];3116 -> 3183[label="",style="solid", color="black", weight=3]; 3117[label="vuz172",fontsize=16,color="green",shape="box"];3118[label="vuz173",fontsize=16,color="green",shape="box"];2100[label="primQuotInt vuz290 vuz134",fontsize=16,color="burlywood",shape="box"];3638[label="vuz290/Pos vuz2900",fontsize=10,color="white",style="solid",shape="box"];2100 -> 3638[label="",style="solid", color="burlywood", weight=9]; 3638 -> 2183[label="",style="solid", color="burlywood", weight=3]; 3639[label="vuz290/Neg vuz2900",fontsize=10,color="white",style="solid",shape="box"];2100 -> 3639[label="",style="solid", color="burlywood", weight=9]; 3639 -> 2184[label="",style="solid", color="burlywood", weight=3]; 1992[label="Integer vuz290 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];1992 -> 2044[label="",style="solid", color="black", weight=3]; 1994 -> 2047[label="",style="dashed", color="red", weight=0]; 1994[label="Integer vuz290 `quot` Integer (primNegInt (Neg (Succ vuz30000)))",fontsize=16,color="magenta"];1994 -> 2051[label="",style="dashed", color="magenta", weight=3]; 3182[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) True",fontsize=16,color="black",shape="box"];3182 -> 3251[label="",style="solid", color="black", weight=3]; 2000[label="Integer vuz290 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];2000 -> 2060[label="",style="solid", color="black", weight=3]; 3247[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) (Succ vuz1850) == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) (Succ vuz1850) == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3247 -> 3257[label="",style="solid", color="black", weight=3]; 3248[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) Zero == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) Zero == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3248 -> 3258[label="",style="solid", color="black", weight=3]; 3249[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero (Succ vuz1850) == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero (Succ vuz1850) == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3249 -> 3259[label="",style="solid", color="black", weight=3]; 3250[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3250 -> 3260[label="",style="solid", color="black", weight=3]; 2027 -> 2375[label="",style="dashed", color="red", weight=0]; 2027[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz30000)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos (Succ vuz30000)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2027 -> 2376[label="",style="dashed", color="magenta", weight=3]; 2027 -> 2377[label="",style="dashed", color="magenta", weight=3]; 2028[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2028 -> 2084[label="",style="solid", color="black", weight=3]; 2029[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2029 -> 2085[label="",style="solid", color="black", weight=3]; 2030[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz30000))) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz30000))) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2030 -> 2086[label="",style="solid", color="black", weight=3]; 3253[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) (Succ vuz1920) == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) (Succ vuz1920) == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3253 -> 3264[label="",style="solid", color="black", weight=3]; 3254[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) Zero == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) Zero == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3254 -> 3265[label="",style="solid", color="black", weight=3]; 3255[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero (Succ vuz1920) == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero (Succ vuz1920) == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3255 -> 3266[label="",style="solid", color="black", weight=3]; 3256[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3256 -> 3267[label="",style="solid", color="black", weight=3]; 2033[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2033 -> 2091[label="",style="solid", color="black", weight=3]; 2034[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2034 -> 2092[label="",style="solid", color="black", weight=3]; 2035 -> 1983[label="",style="dashed", color="red", weight=0]; 2035[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];3183[label="Integer vuz172 `quot` absReal0 (Integer (Pos (Succ vuz173))) otherwise",fontsize=16,color="black",shape="box"];3183 -> 3252[label="",style="solid", color="black", weight=3]; 2183[label="primQuotInt (Pos vuz2900) vuz134",fontsize=16,color="burlywood",shape="box"];3640[label="vuz134/Pos vuz1340",fontsize=10,color="white",style="solid",shape="box"];2183 -> 3640[label="",style="solid", color="burlywood", weight=9]; 3640 -> 2196[label="",style="solid", color="burlywood", weight=3]; 3641[label="vuz134/Neg vuz1340",fontsize=10,color="white",style="solid",shape="box"];2183 -> 3641[label="",style="solid", color="burlywood", weight=9]; 3641 -> 2197[label="",style="solid", color="burlywood", weight=3]; 2184[label="primQuotInt (Neg vuz2900) vuz134",fontsize=16,color="burlywood",shape="box"];3642[label="vuz134/Pos vuz1340",fontsize=10,color="white",style="solid",shape="box"];2184 -> 3642[label="",style="solid", color="burlywood", weight=9]; 3642 -> 2198[label="",style="solid", color="burlywood", weight=3]; 3643[label="vuz134/Neg vuz1340",fontsize=10,color="white",style="solid",shape="box"];2184 -> 3643[label="",style="solid", color="burlywood", weight=9]; 3643 -> 2199[label="",style="solid", color="burlywood", weight=3]; 2044[label="Integer vuz290 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];2044 -> 2098[label="",style="solid", color="black", weight=3]; 2051 -> 934[label="",style="dashed", color="red", weight=0]; 2051[label="primNegInt (Neg (Succ vuz30000))",fontsize=16,color="magenta"];2051 -> 2099[label="",style="dashed", color="magenta", weight=3]; 3251 -> 2047[label="",style="dashed", color="red", weight=0]; 3251[label="Integer vuz177 `quot` Integer (Neg (Succ vuz178))",fontsize=16,color="magenta"];3251 -> 3261[label="",style="dashed", color="magenta", weight=3]; 3251 -> 3262[label="",style="dashed", color="magenta", weight=3]; 2060 -> 2047[label="",style="dashed", color="red", weight=0]; 2060[label="Integer vuz290 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];2060 -> 2106[label="",style="dashed", color="magenta", weight=3]; 3257 -> 3119[label="",style="dashed", color="red", weight=0]; 3257[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz1840 vuz1850 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz1840 vuz1850 == LT)) `rem` Integer vuz186)",fontsize=16,color="magenta"];3257 -> 3268[label="",style="dashed", color="magenta", weight=3]; 3257 -> 3269[label="",style="dashed", color="magenta", weight=3]; 3258 -> 1844[label="",style="dashed", color="red", weight=0]; 3258[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (GT == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (GT == LT)) `rem` Integer vuz186)",fontsize=16,color="magenta"];3258 -> 3270[label="",style="dashed", color="magenta", weight=3]; 3258 -> 3271[label="",style="dashed", color="magenta", weight=3]; 3258 -> 3272[label="",style="dashed", color="magenta", weight=3]; 3258 -> 3273[label="",style="dashed", color="magenta", weight=3]; 3259[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (LT == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (LT == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3259 -> 3274[label="",style="solid", color="black", weight=3]; 3260[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (EQ == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (EQ == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3260 -> 3275[label="",style="solid", color="black", weight=3]; 2376[label="Pos (Succ vuz30000)",fontsize=16,color="green",shape="box"];2377[label="Pos (Succ vuz30000)",fontsize=16,color="green",shape="box"];2375[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer vuz153 `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer vuz152 `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2375 -> 2393[label="",style="solid", color="black", weight=3]; 2084[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2084 -> 2200[label="",style="solid", color="black", weight=3]; 2085 -> 2375[label="",style="dashed", color="red", weight=0]; 2085[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2085 -> 2378[label="",style="dashed", color="magenta", weight=3]; 2085 -> 2379[label="",style="dashed", color="magenta", weight=3]; 2086[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz30000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz30000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2086 -> 2202[label="",style="solid", color="black", weight=3]; 3264 -> 3184[label="",style="dashed", color="red", weight=0]; 3264[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz1910 vuz1920 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz1910 vuz1920 == LT)) `rem` Integer vuz193)",fontsize=16,color="magenta"];3264 -> 3277[label="",style="dashed", color="magenta", weight=3]; 3264 -> 3278[label="",style="dashed", color="magenta", weight=3]; 3265[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (GT == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (GT == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3265 -> 3279[label="",style="solid", color="black", weight=3]; 3266 -> 1849[label="",style="dashed", color="red", weight=0]; 3266[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (LT == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (LT == LT)) `rem` Integer vuz193)",fontsize=16,color="magenta"];3266 -> 3280[label="",style="dashed", color="magenta", weight=3]; 3266 -> 3281[label="",style="dashed", color="magenta", weight=3]; 3266 -> 3282[label="",style="dashed", color="magenta", weight=3]; 3266 -> 3283[label="",style="dashed", color="magenta", weight=3]; 3267[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (EQ == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (EQ == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3267 -> 3284[label="",style="solid", color="black", weight=3]; 2091[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2091 -> 2207[label="",style="solid", color="black", weight=3]; 2092 -> 2375[label="",style="dashed", color="red", weight=0]; 2092[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Neg Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2092 -> 2380[label="",style="dashed", color="magenta", weight=3]; 2092 -> 2381[label="",style="dashed", color="magenta", weight=3]; 3252[label="Integer vuz172 `quot` absReal0 (Integer (Pos (Succ vuz173))) True",fontsize=16,color="black",shape="box"];3252 -> 3263[label="",style="solid", color="black", weight=3]; 2196[label="primQuotInt (Pos vuz2900) (Pos vuz1340)",fontsize=16,color="burlywood",shape="box"];3644[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2196 -> 3644[label="",style="solid", color="burlywood", weight=9]; 3644 -> 2289[label="",style="solid", color="burlywood", weight=3]; 3645[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2196 -> 3645[label="",style="solid", color="burlywood", weight=9]; 3645 -> 2290[label="",style="solid", color="burlywood", weight=3]; 2197[label="primQuotInt (Pos vuz2900) (Neg vuz1340)",fontsize=16,color="burlywood",shape="box"];3646[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2197 -> 3646[label="",style="solid", color="burlywood", weight=9]; 3646 -> 2291[label="",style="solid", color="burlywood", weight=3]; 3647[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2197 -> 3647[label="",style="solid", color="burlywood", weight=9]; 3647 -> 2292[label="",style="solid", color="burlywood", weight=3]; 2198[label="primQuotInt (Neg vuz2900) (Pos vuz1340)",fontsize=16,color="burlywood",shape="box"];3648[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2198 -> 3648[label="",style="solid", color="burlywood", weight=9]; 3648 -> 2293[label="",style="solid", color="burlywood", weight=3]; 3649[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2198 -> 3649[label="",style="solid", color="burlywood", weight=9]; 3649 -> 2294[label="",style="solid", color="burlywood", weight=3]; 2199[label="primQuotInt (Neg vuz2900) (Neg vuz1340)",fontsize=16,color="burlywood",shape="box"];3650[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2199 -> 3650[label="",style="solid", color="burlywood", weight=9]; 3650 -> 2295[label="",style="solid", color="burlywood", weight=3]; 3651[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2199 -> 3651[label="",style="solid", color="burlywood", weight=9]; 3651 -> 2296[label="",style="solid", color="burlywood", weight=3]; 2098 -> 2047[label="",style="dashed", color="red", weight=0]; 2098[label="Integer vuz290 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];2098 -> 2215[label="",style="dashed", color="magenta", weight=3]; 2099[label="vuz30000",fontsize=16,color="green",shape="box"];3261[label="Neg (Succ vuz178)",fontsize=16,color="green",shape="box"];3262[label="vuz177",fontsize=16,color="green",shape="box"];2106 -> 969[label="",style="dashed", color="red", weight=0]; 2106[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3268[label="vuz1840",fontsize=16,color="green",shape="box"];3269[label="vuz1850",fontsize=16,color="green",shape="box"];3270[label="vuz187",fontsize=16,color="green",shape="box"];3271[label="vuz186",fontsize=16,color="green",shape="box"];3272[label="vuz182",fontsize=16,color="green",shape="box"];3273[label="vuz183",fontsize=16,color="green",shape="box"];3274[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not True) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not True) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3274 -> 3285[label="",style="solid", color="black", weight=3]; 3275 -> 1899[label="",style="dashed", color="red", weight=0]; 3275[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not False) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not False) `rem` Integer vuz186)",fontsize=16,color="magenta"];3275 -> 3286[label="",style="dashed", color="magenta", weight=3]; 3275 -> 3287[label="",style="dashed", color="magenta", weight=3]; 3275 -> 3288[label="",style="dashed", color="magenta", weight=3]; 3275 -> 3289[label="",style="dashed", color="magenta", weight=3]; 2393 -> 2467[label="",style="dashed", color="red", weight=0]; 2393[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primRemInt vuz153 vuz94) == vuz101) (Integer vuz94) (Integer (primRemInt vuz153 vuz94))",fontsize=16,color="magenta"];2393 -> 2468[label="",style="dashed", color="magenta", weight=3]; 2393 -> 2469[label="",style="dashed", color="magenta", weight=3]; 2200[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2200 -> 2312[label="",style="solid", color="black", weight=3]; 2378[label="Pos Zero",fontsize=16,color="green",shape="box"];2379[label="Pos Zero",fontsize=16,color="green",shape="box"];2202[label="Integer vuz290 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz30000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg (Succ vuz30000))) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2202 -> 2315[label="",style="solid", color="black", weight=3]; 3277[label="vuz1910",fontsize=16,color="green",shape="box"];3278[label="vuz1920",fontsize=16,color="green",shape="box"];3279[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193)",fontsize=16,color="black",shape="triangle"];3279 -> 3292[label="",style="solid", color="black", weight=3]; 3280[label="vuz194",fontsize=16,color="green",shape="box"];3281[label="vuz190",fontsize=16,color="green",shape="box"];3282[label="vuz193",fontsize=16,color="green",shape="box"];3283[label="vuz189",fontsize=16,color="green",shape="box"];3284 -> 3279[label="",style="dashed", color="red", weight=0]; 3284[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193)",fontsize=16,color="magenta"];2207[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2207 -> 2321[label="",style="solid", color="black", weight=3]; 2380[label="Neg Zero",fontsize=16,color="green",shape="box"];2381[label="Neg Zero",fontsize=16,color="green",shape="box"];3263[label="Integer vuz172 `quot` (`negate` Integer (Pos (Succ vuz173)))",fontsize=16,color="black",shape="box"];3263 -> 3276[label="",style="solid", color="black", weight=3]; 2289[label="primQuotInt (Pos vuz2900) (Pos (Succ vuz13400))",fontsize=16,color="black",shape="box"];2289 -> 2348[label="",style="solid", color="black", weight=3]; 2290[label="primQuotInt (Pos vuz2900) (Pos Zero)",fontsize=16,color="black",shape="box"];2290 -> 2349[label="",style="solid", color="black", weight=3]; 2291[label="primQuotInt (Pos vuz2900) (Neg (Succ vuz13400))",fontsize=16,color="black",shape="box"];2291 -> 2350[label="",style="solid", color="black", weight=3]; 2292[label="primQuotInt (Pos vuz2900) (Neg Zero)",fontsize=16,color="black",shape="box"];2292 -> 2351[label="",style="solid", color="black", weight=3]; 2293[label="primQuotInt (Neg vuz2900) (Pos (Succ vuz13400))",fontsize=16,color="black",shape="box"];2293 -> 2352[label="",style="solid", color="black", weight=3]; 2294[label="primQuotInt (Neg vuz2900) (Pos Zero)",fontsize=16,color="black",shape="box"];2294 -> 2353[label="",style="solid", color="black", weight=3]; 2295[label="primQuotInt (Neg vuz2900) (Neg (Succ vuz13400))",fontsize=16,color="black",shape="box"];2295 -> 2354[label="",style="solid", color="black", weight=3]; 2296[label="primQuotInt (Neg vuz2900) (Neg Zero)",fontsize=16,color="black",shape="box"];2296 -> 2355[label="",style="solid", color="black", weight=3]; 2215 -> 1002[label="",style="dashed", color="red", weight=0]; 2215[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3285[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) False `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) False `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3285 -> 3293[label="",style="solid", color="black", weight=3]; 3286[label="vuz187",fontsize=16,color="green",shape="box"];3287[label="vuz186",fontsize=16,color="green",shape="box"];3288[label="vuz182",fontsize=16,color="green",shape="box"];3289[label="vuz183",fontsize=16,color="green",shape="box"];2468 -> 215[label="",style="dashed", color="red", weight=0]; 2468[label="Integer (primRemInt vuz153 vuz94) == vuz101",fontsize=16,color="magenta"];2468 -> 2476[label="",style="dashed", color="magenta", weight=3]; 2468 -> 2477[label="",style="dashed", color="magenta", weight=3]; 2469 -> 643[label="",style="dashed", color="red", weight=0]; 2469[label="primRemInt vuz153 vuz94",fontsize=16,color="magenta"];2469 -> 2478[label="",style="dashed", color="magenta", weight=3]; 2469 -> 2479[label="",style="dashed", color="magenta", weight=3]; 2467[label="Integer vuz290 `quot` gcd0Gcd'1 vuz159 (Integer vuz94) (Integer vuz160)",fontsize=16,color="burlywood",shape="triangle"];3652[label="vuz159/False",fontsize=10,color="white",style="solid",shape="box"];2467 -> 3652[label="",style="solid", color="burlywood", weight=9]; 3652 -> 2480[label="",style="solid", color="burlywood", weight=3]; 3653[label="vuz159/True",fontsize=10,color="white",style="solid",shape="box"];2467 -> 3653[label="",style="solid", color="burlywood", weight=9]; 3653 -> 2481[label="",style="solid", color="burlywood", weight=3]; 2312[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2312 -> 2370[label="",style="solid", color="black", weight=3]; 2315 -> 2375[label="",style="dashed", color="red", weight=0]; 2315[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz30000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg (Succ vuz30000))) `rem` Integer vuz94)",fontsize=16,color="magenta"];2315 -> 2382[label="",style="dashed", color="magenta", weight=3]; 2315 -> 2383[label="",style="dashed", color="magenta", weight=3]; 3292[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) True `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) True `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3292 -> 3295[label="",style="solid", color="black", weight=3]; 2321[label="Integer vuz290 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2321 -> 2399[label="",style="solid", color="black", weight=3]; 3276 -> 2047[label="",style="dashed", color="red", weight=0]; 3276[label="Integer vuz172 `quot` Integer (primNegInt (Pos (Succ vuz173)))",fontsize=16,color="magenta"];3276 -> 3290[label="",style="dashed", color="magenta", weight=3]; 3276 -> 3291[label="",style="dashed", color="magenta", weight=3]; 2348[label="Pos (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2348 -> 2406[label="",style="dashed", color="green", weight=3]; 2349 -> 486[label="",style="dashed", color="red", weight=0]; 2349[label="error []",fontsize=16,color="magenta"];2350[label="Neg (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2350 -> 2407[label="",style="dashed", color="green", weight=3]; 2351 -> 486[label="",style="dashed", color="red", weight=0]; 2351[label="error []",fontsize=16,color="magenta"];2352[label="Neg (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2352 -> 2408[label="",style="dashed", color="green", weight=3]; 2353 -> 486[label="",style="dashed", color="red", weight=0]; 2353[label="error []",fontsize=16,color="magenta"];2354[label="Pos (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2354 -> 2409[label="",style="dashed", color="green", weight=3]; 2355 -> 486[label="",style="dashed", color="red", weight=0]; 2355[label="error []",fontsize=16,color="magenta"];3293[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz183))) otherwise `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal0 (Integer (Pos (Succ vuz183))) otherwise `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3293 -> 3296[label="",style="solid", color="black", weight=3]; 2476[label="vuz101",fontsize=16,color="green",shape="box"];2477 -> 643[label="",style="dashed", color="red", weight=0]; 2477[label="primRemInt vuz153 vuz94",fontsize=16,color="magenta"];2477 -> 2524[label="",style="dashed", color="magenta", weight=3]; 2477 -> 2525[label="",style="dashed", color="magenta", weight=3]; 2478[label="vuz153",fontsize=16,color="green",shape="box"];2479[label="vuz94",fontsize=16,color="green",shape="box"];2480[label="Integer vuz290 `quot` gcd0Gcd'1 False (Integer vuz94) (Integer vuz160)",fontsize=16,color="black",shape="box"];2480 -> 2526[label="",style="solid", color="black", weight=3]; 2481[label="Integer vuz290 `quot` gcd0Gcd'1 True (Integer vuz94) (Integer vuz160)",fontsize=16,color="black",shape="box"];2481 -> 2527[label="",style="solid", color="black", weight=3]; 2370[label="Integer vuz290 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2370 -> 2487[label="",style="solid", color="black", weight=3]; 2382 -> 934[label="",style="dashed", color="red", weight=0]; 2382[label="primNegInt (Neg (Succ vuz30000))",fontsize=16,color="magenta"];2382 -> 2488[label="",style="dashed", color="magenta", weight=3]; 2383 -> 934[label="",style="dashed", color="red", weight=0]; 2383[label="primNegInt (Neg (Succ vuz30000))",fontsize=16,color="magenta"];2383 -> 2489[label="",style="dashed", color="magenta", weight=3]; 3295 -> 2375[label="",style="dashed", color="red", weight=0]; 3295[label="Integer vuz189 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz190)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (Integer (Neg (Succ vuz190)) `rem` Integer vuz193)",fontsize=16,color="magenta"];3295 -> 3297[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3298[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3299[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3300[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3301[label="",style="dashed", color="magenta", weight=3]; 2399 -> 2375[label="",style="dashed", color="red", weight=0]; 2399[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2399 -> 2495[label="",style="dashed", color="magenta", weight=3]; 2399 -> 2496[label="",style="dashed", color="magenta", weight=3]; 3290 -> 1753[label="",style="dashed", color="red", weight=0]; 3290[label="primNegInt (Pos (Succ vuz173))",fontsize=16,color="magenta"];3290 -> 3294[label="",style="dashed", color="magenta", weight=3]; 3291[label="vuz172",fontsize=16,color="green",shape="box"];2406 -> 499[label="",style="dashed", color="red", weight=0]; 2406[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2406 -> 2504[label="",style="dashed", color="magenta", weight=3]; 2406 -> 2505[label="",style="dashed", color="magenta", weight=3]; 2407 -> 499[label="",style="dashed", color="red", weight=0]; 2407[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2407 -> 2506[label="",style="dashed", color="magenta", weight=3]; 2407 -> 2507[label="",style="dashed", color="magenta", weight=3]; 2408 -> 499[label="",style="dashed", color="red", weight=0]; 2408[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2408 -> 2508[label="",style="dashed", color="magenta", weight=3]; 2408 -> 2509[label="",style="dashed", color="magenta", weight=3]; 2409 -> 499[label="",style="dashed", color="red", weight=0]; 2409[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2409 -> 2510[label="",style="dashed", color="magenta", weight=3]; 2409 -> 2511[label="",style="dashed", color="magenta", weight=3]; 3296[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz183))) True `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal0 (Integer (Pos (Succ vuz183))) True `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3296 -> 3302[label="",style="solid", color="black", weight=3]; 2524[label="vuz153",fontsize=16,color="green",shape="box"];2525[label="vuz94",fontsize=16,color="green",shape="box"];2526[label="Integer vuz290 `quot` gcd0Gcd'0 (Integer vuz94) (Integer vuz160)",fontsize=16,color="black",shape="box"];2526 -> 2565[label="",style="solid", color="black", weight=3]; 2527 -> 2047[label="",style="dashed", color="red", weight=0]; 2527[label="Integer vuz290 `quot` Integer vuz94",fontsize=16,color="magenta"];2527 -> 2566[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2375[label="",style="dashed", color="red", weight=0]; 2487[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2487 -> 2534[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2535[label="",style="dashed", color="magenta", weight=3]; 2488[label="vuz30000",fontsize=16,color="green",shape="box"];2489[label="vuz30000",fontsize=16,color="green",shape="box"];3297[label="Neg (Succ vuz190)",fontsize=16,color="green",shape="box"];3298[label="vuz194",fontsize=16,color="green",shape="box"];3299[label="Neg (Succ vuz190)",fontsize=16,color="green",shape="box"];3300[label="vuz193",fontsize=16,color="green",shape="box"];3301[label="vuz189",fontsize=16,color="green",shape="box"];2495 -> 969[label="",style="dashed", color="red", weight=0]; 2495[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2496 -> 969[label="",style="dashed", color="red", weight=0]; 2496[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3294[label="vuz173",fontsize=16,color="green",shape="box"];2504[label="vuz2900",fontsize=16,color="green",shape="box"];2505[label="vuz13400",fontsize=16,color="green",shape="box"];2506[label="vuz2900",fontsize=16,color="green",shape="box"];2507[label="vuz13400",fontsize=16,color="green",shape="box"];2508[label="vuz2900",fontsize=16,color="green",shape="box"];2509[label="vuz13400",fontsize=16,color="green",shape="box"];2510[label="vuz2900",fontsize=16,color="green",shape="box"];2511[label="vuz13400",fontsize=16,color="green",shape="box"];3302[label="Integer vuz182 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz183))) `rem` Integer vuz186 == vuz187) (Integer vuz186) ((`negate` Integer (Pos (Succ vuz183))) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3302 -> 3303[label="",style="solid", color="black", weight=3]; 2565[label="Integer vuz290 `quot` gcd0Gcd' (Integer vuz160) (Integer vuz94 `rem` Integer vuz160)",fontsize=16,color="black",shape="box"];2565 -> 2598[label="",style="solid", color="black", weight=3]; 2566[label="vuz94",fontsize=16,color="green",shape="box"];2534 -> 1002[label="",style="dashed", color="red", weight=0]; 2534[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];2535 -> 1002[label="",style="dashed", color="red", weight=0]; 2535[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3303 -> 2375[label="",style="dashed", color="red", weight=0]; 3303[label="Integer vuz182 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz183))) `rem` Integer vuz186 == vuz187) (Integer vuz186) (Integer (primNegInt (Pos (Succ vuz183))) `rem` Integer vuz186)",fontsize=16,color="magenta"];3303 -> 3304[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3305[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3306[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3307[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3308[label="",style="dashed", color="magenta", weight=3]; 2598[label="Integer vuz290 `quot` gcd0Gcd'2 (Integer vuz160) (Integer vuz94 `rem` Integer vuz160)",fontsize=16,color="black",shape="box"];2598 -> 2628[label="",style="solid", color="black", weight=3]; 3304 -> 1753[label="",style="dashed", color="red", weight=0]; 3304[label="primNegInt (Pos (Succ vuz183))",fontsize=16,color="magenta"];3304 -> 3309[label="",style="dashed", color="magenta", weight=3]; 3305[label="vuz187",fontsize=16,color="green",shape="box"];3306 -> 1753[label="",style="dashed", color="red", weight=0]; 3306[label="primNegInt (Pos (Succ vuz183))",fontsize=16,color="magenta"];3306 -> 3310[label="",style="dashed", color="magenta", weight=3]; 3307[label="vuz186",fontsize=16,color="green",shape="box"];3308[label="vuz182",fontsize=16,color="green",shape="box"];2628 -> 2375[label="",style="dashed", color="red", weight=0]; 2628[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer vuz94 `rem` Integer vuz160 == fromInt (Pos Zero)) (Integer vuz160) (Integer vuz94 `rem` Integer vuz160)",fontsize=16,color="magenta"];2628 -> 2658[label="",style="dashed", color="magenta", weight=3]; 2628 -> 2659[label="",style="dashed", color="magenta", weight=3]; 2628 -> 2660[label="",style="dashed", color="magenta", weight=3]; 2628 -> 2661[label="",style="dashed", color="magenta", weight=3]; 3309[label="vuz183",fontsize=16,color="green",shape="box"];3310[label="vuz183",fontsize=16,color="green",shape="box"];2658[label="vuz94",fontsize=16,color="green",shape="box"];2659 -> 13[label="",style="dashed", color="red", weight=0]; 2659[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2660[label="vuz94",fontsize=16,color="green",shape="box"];2661[label="vuz160",fontsize=16,color="green",shape="box"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot3(vuz189, vuz190, Succ(vuz1910), Succ(vuz1920), vuz193, vuz194) -> new_quot3(vuz189, vuz190, vuz1910, vuz1920, vuz193, vuz194) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_quot3(vuz189, vuz190, Succ(vuz1910), Succ(vuz1920), vuz193, vuz194) -> new_quot3(vuz189, vuz190, vuz1910, vuz1920, vuz193, vuz194) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot5(vuz146, vuz147, Succ(vuz1480), Succ(vuz1490), vuz150, vuz151) -> new_quot5(vuz146, vuz147, vuz1480, vuz1490, vuz150, vuz151) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_quot5(vuz146, vuz147, Succ(vuz1480), Succ(vuz1490), vuz150, vuz151) -> new_quot5(vuz146, vuz147, vuz1480, vuz1490, vuz150, vuz151) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_absReal1(vuz112, Succ(vuz1130), Succ(vuz1140)) -> new_absReal1(vuz112, vuz1130, vuz1140) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_absReal1(vuz112, Succ(vuz1130), Succ(vuz1140)) -> new_absReal1(vuz112, vuz1130, vuz1140) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_absReal10(vuz104, Succ(vuz1050), Succ(vuz1060)) -> new_absReal10(vuz104, vuz1050, vuz1060) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_absReal10(vuz104, Succ(vuz1050), Succ(vuz1060)) -> new_absReal10(vuz104, vuz1050, vuz1060) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 ---------------------------------------- (24) YES ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS0(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS(Succ(Succ(vuz71000)), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS0(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS0(vuz155, vuz156, Zero, Zero) -> new_primModNatS00(vuz155, vuz156) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (27) Complex Obligation (AND) ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS0(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS0(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS0(vuz155, vuz156, Zero, Zero) -> new_primModNatS00(vuz155, vuz156) new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156)),new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156))) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS0(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS0(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS0(vuz155, vuz156, Zero, Zero) -> new_primModNatS00(vuz155, vuz156) new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156)),new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156))) ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS0(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS0(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS0(vuz155, vuz156, Zero, Zero) -> new_primModNatS00(vuz155, vuz156) new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156)) new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS00(vuz155, vuz156) -> new_primModNatS(new_primMinusNatS0(vuz155, vuz156), Succ(vuz156)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS0(vuz71000, vuz70000, vuz71000, vuz70000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primModNatS0(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS0(vuz155, vuz156, vuz1570, vuz1580) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primModNatS0(vuz155, vuz156, Zero, Zero) -> new_primModNatS00(vuz155, vuz156) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz71000)), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primModNatS(Succ(Succ(vuz71000)), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 > 1, 2 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (37) YES ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vuz10100), Succ(vuz30100)) -> new_primMulNat(vuz10100, Succ(vuz30100)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) 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(vuz10100), Succ(vuz30100)) -> new_primMulNat(vuz10100, Succ(vuz30100)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (40) YES ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS(vuz880, vuz890) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (42) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primMinusNatS(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS(vuz880, vuz890) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (43) YES ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot4(vuz182, vuz183, Succ(vuz1840), Succ(vuz1850), vuz186, vuz187) -> new_quot4(vuz182, vuz183, vuz1840, vuz1850, vuz186, vuz187) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_quot4(vuz182, vuz183, Succ(vuz1840), Succ(vuz1850), vuz186, vuz187) -> new_quot4(vuz182, vuz183, vuz1840, vuz1850, vuz186, vuz187) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNat(Succ(vuz1100), Succ(vuz3000)) -> new_primMinusNat(vuz1100, vuz3000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primMinusNat(Succ(vuz1100), Succ(vuz3000)) -> new_primMinusNat(vuz1100, vuz3000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vuz1100), Succ(vuz3000)) -> new_primPlusNat(vuz1100, vuz3000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) 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(vuz1100), Succ(vuz3000)) -> new_primPlusNat(vuz1100, vuz3000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (52) YES ---------------------------------------- (53) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_rem(vuz71, vuz70)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Zero, vuz7000) -> Zero new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_esEs(vuz26, vuz25) -> new_primEqInt(vuz26, vuz25) new_error -> error([]) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_rem(vuz71, vuz70) -> new_primRemInt(vuz71, vuz70) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_rem(x0, x1) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_esEs(x0, x1) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (54) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71),new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71)) ---------------------------------------- (55) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_rem(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Zero, vuz7000) -> Zero new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_esEs(vuz26, vuz25) -> new_primEqInt(vuz26, vuz25) new_error -> error([]) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_rem(vuz71, vuz70) -> new_primRemInt(vuz71, vuz70) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_rem(x0, x1) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_esEs(x0, x1) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (56) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (57) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_rem(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) The TRS R consists of the following rules: new_rem(vuz71, vuz70) -> new_primRemInt(vuz71, vuz70) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_rem(x0, x1) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_esEs(x0, x1) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (58) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs(x0, x1) ---------------------------------------- (59) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_rem(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) The TRS R consists of the following rules: new_rem(vuz71, vuz70) -> new_primRemInt(vuz71, vuz70) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_rem(x0, x1) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (60) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_rem(vuz71, vuz70)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)),new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70))) ---------------------------------------- (61) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) The TRS R consists of the following rules: new_rem(vuz71, vuz70) -> new_primRemInt(vuz71, vuz70) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_rem(x0, x1) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (62) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), new_fromInt), vuz70, vuz71),new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), new_fromInt), vuz70, vuz71)) ---------------------------------------- (63) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), new_fromInt), vuz70, vuz71) The TRS R consists of the following rules: new_rem(vuz71, vuz70) -> new_primRemInt(vuz71, vuz70) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_rem(x0, x1) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (64) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), new_fromInt), vuz70, vuz71) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_rem(x0, x1) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (66) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_rem(x0, x1) ---------------------------------------- (67) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), new_fromInt), vuz70, vuz71) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (68) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), new_fromInt), vuz70, vuz71) at position [0,1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71),new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71)) ---------------------------------------- (69) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (70) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (71) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_fromInt new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (72) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primEqNat0(Zero, Zero) new_primEqNat0(Succ(x0), Zero) new_fromInt new_primEqNat0(Succ(x0), Succ(x1)) new_primEqNat0(Zero, Succ(x0)) ---------------------------------------- (73) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (74) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, x2, x3) -> new_gcd0Gcd'0(x2, new_primRemInt(x3, x2)), new_gcd0Gcd'0(x4, x5) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x4, x5), Pos(Zero)), x5, x4) which results in the following constraint: (1) (new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))=new_gcd0Gcd'0(x4, x5) ==> new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) For Pair new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71) the following chains were created: *We consider the chain new_gcd0Gcd'0(x6, x7) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6), new_gcd0Gcd'1(False, x8, x9) -> new_gcd0Gcd'0(x8, new_primRemInt(x9, x8)) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)=new_gcd0Gcd'1(False, x8, x9) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_primRemInt(x6, x7)=x12 & Pos(Zero)=x13 & new_primEqInt(x12, x13)=False ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x12, x13)=False which results in the following new constraints: (3) (False=False & new_primRemInt(x6, x7)=Pos(Succ(x14)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) (4) (False=False & new_primRemInt(x6, x7)=Neg(Succ(x16)) & Pos(Zero)=Pos(x15) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (new_primRemInt(x6, x7)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: (6) (new_primRemInt(x6, x7)=Neg(Succ(x16)) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x6, x7)=Pos(Succ(x14)) which results in the following new constraints: (7) (Pos(new_primModNatS1(x18, x17))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x18), Neg(Succ(x17)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x18), Neg(Succ(x17))), Pos(Zero)), Neg(Succ(x17)), Pos(x18))) (8) (Pos(new_primModNatS1(x20, x19))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x20), Pos(Succ(x19)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x20), Pos(Succ(x19))), Pos(Zero)), Pos(Succ(x19)), Pos(x20))) (9) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Neg(x21), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x21), Neg(Zero)), Pos(Zero)), Neg(Zero), Neg(x21))) (10) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x24), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x24), Pos(Zero)), Pos(Zero)), Pos(Zero), Pos(x24))) (11) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x27), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x27), Neg(Zero)), Pos(Zero)), Neg(Zero), Pos(x27))) (12) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Neg(x28), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x28), Pos(Zero)), Pos(Zero)), Pos(Zero), Neg(x28))) We simplified constraint (7) using rules (I), (II) which results in the following new constraint: (13) (new_primModNatS1(x18, x17)=Succ(x14) ==> new_gcd0Gcd'0(Pos(x18), Neg(Succ(x17)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x18), Neg(Succ(x17))), Pos(Zero)), Neg(Succ(x17)), Pos(x18))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (14) (new_primModNatS1(x20, x19)=Succ(x14) ==> new_gcd0Gcd'0(Pos(x20), Pos(Succ(x19)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x20), Pos(Succ(x19))), Pos(Zero)), Pos(Succ(x19)), Pos(x20))) We solved constraint (9) using rule (V) (with possible (I) afterwards).We solved constraint (10) using rule (V) (with possible (I) afterwards).We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x18, x17)=Succ(x14) which results in the following new constraints: (15) (Succ(Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) (16) (new_primModNatS1(new_primMinusNatS0(Succ(x31), Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) (17) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) (18) (new_primModNatS01(x33, x32, x33, x32)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32)))), Pos(Zero)), Neg(Succ(Succ(x32))), Pos(Succ(Succ(x33))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43)))), Pos(Zero)), Neg(Succ(Succ(x43))), Pos(Succ(Succ(x42))))) We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x20, x19)=Succ(x14) which results in the following new constraints: (23) (Succ(Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x44))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x44)))), Pos(Zero)), Pos(Succ(Succ(x44))), Pos(Succ(Zero)))) (24) (new_primModNatS1(new_primMinusNatS0(Succ(x46), Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x46))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x46))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x46))))) (25) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) (26) (new_primModNatS01(x48, x47, x48, x47)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x48))), Pos(Succ(Succ(x47))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Succ(x47)))), Pos(Zero)), Pos(Succ(Succ(x47))), Pos(Succ(Succ(x48))))) We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: (27) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x44))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x44)))), Pos(Zero)), Pos(Succ(Succ(x44))), Pos(Succ(Zero)))) We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: (28) (new_gcd0Gcd'0(Pos(Succ(Succ(x46))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x46))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x46))))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (30) (new_gcd0Gcd'0(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58)))), Pos(Zero)), Pos(Succ(Succ(x58))), Pos(Succ(Succ(x57))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x6, x7)=Neg(Succ(x16)) which results in the following new constraints: (31) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x63), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x63), Neg(Zero)), Pos(Zero)), Neg(Zero), Neg(x63))) (32) (Neg(new_primModNatS1(x65, x64))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x65), Pos(Succ(x64)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x65), Pos(Succ(x64))), Pos(Zero)), Pos(Succ(x64)), Neg(x65))) (33) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x66), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x66), Pos(Zero)), Pos(Zero)), Pos(Zero), Pos(x66))) (34) (Neg(new_primModNatS1(x68, x67))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x68), Neg(Succ(x67)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x68), Neg(Succ(x67))), Pos(Zero)), Neg(Succ(x67)), Neg(x68))) (35) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x69), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x69), Neg(Zero)), Pos(Zero)), Neg(Zero), Pos(x69))) (36) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x70), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x70), Pos(Zero)), Pos(Zero)), Pos(Zero), Neg(x70))) We solved constraint (31) using rule (V) (with possible (I) afterwards).We simplified constraint (32) using rules (I), (II) which results in the following new constraint: (37) (new_primModNatS1(x65, x64)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x65), Pos(Succ(x64)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x65), Pos(Succ(x64))), Pos(Zero)), Pos(Succ(x64)), Neg(x65))) We solved constraint (33) using rule (V) (with possible (I) afterwards).We simplified constraint (34) using rules (I), (II) which results in the following new constraint: (38) (new_primModNatS1(x68, x67)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x68), Neg(Succ(x67)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x68), Neg(Succ(x67))), Pos(Zero)), Neg(Succ(x67)), Neg(x68))) We solved constraint (35) using rule (V) (with possible (I) afterwards).We solved constraint (36) using rule (V) (with possible (I) afterwards).We simplified constraint (37) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x65, x64)=Succ(x16) which results in the following new constraints: (39) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x71))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x71)))), Pos(Zero)), Pos(Succ(Succ(x71))), Neg(Succ(Zero)))) (40) (new_primModNatS1(new_primMinusNatS0(Succ(x73), Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x73))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x73))))) (41) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) (42) (new_primModNatS01(x75, x74, x75, x74)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x75))), Pos(Succ(Succ(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x75))), Pos(Succ(Succ(x74)))), Pos(Zero)), Pos(Succ(Succ(x74))), Neg(Succ(Succ(x75))))) We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint: (43) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x71))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x71)))), Pos(Zero)), Pos(Succ(Succ(x71))), Neg(Succ(Zero)))) We simplified constraint (40) using rules (III), (IV), (VII) which results in the following new constraint: (44) (new_gcd0Gcd'0(Neg(Succ(Succ(x73))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x73))))) We simplified constraint (41) using rules (III), (IV), (VII) which results in the following new constraint: (45) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: (46) (new_gcd0Gcd'0(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85)))), Pos(Zero)), Pos(Succ(Succ(x85))), Neg(Succ(Succ(x84))))) We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x68, x67)=Succ(x16) which results in the following new constraints: (47) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x86))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x86)))), Pos(Zero)), Neg(Succ(Succ(x86))), Neg(Succ(Zero)))) (48) (new_primModNatS1(new_primMinusNatS0(Succ(x88), Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x88))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x88))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x88))))) (49) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) (50) (new_primModNatS01(x90, x89, x90, x89)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x90))), Neg(Succ(Succ(x89))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x90))), Neg(Succ(Succ(x89)))), Pos(Zero)), Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90))))) We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint: (51) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x86))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x86)))), Pos(Zero)), Neg(Succ(Succ(x86))), Neg(Succ(Zero)))) We simplified constraint (48) using rules (III), (IV), (VII) which results in the following new constraint: (52) (new_gcd0Gcd'0(Neg(Succ(Succ(x88))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x88))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x88))))) We simplified constraint (49) using rules (III), (IV), (VII) which results in the following new constraint: (53) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: (54) (new_gcd0Gcd'0(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100)))), Pos(Zero)), Neg(Succ(Succ(x100))), Neg(Succ(Succ(x99))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) *(new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) *new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x44))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x44)))), Pos(Zero)), Pos(Succ(Succ(x44))), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x71))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x71)))), Pos(Zero)), Pos(Succ(Succ(x71))), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x86))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x86)))), Pos(Zero)), Neg(Succ(Succ(x86))), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43)))), Pos(Zero)), Neg(Succ(Succ(x43))), Pos(Succ(Succ(x42))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x46))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x46))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x46))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58)))), Pos(Zero)), Pos(Succ(Succ(x58))), Pos(Succ(Succ(x57))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x73))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x73))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85)))), Pos(Zero)), Pos(Succ(Succ(x85))), Neg(Succ(Succ(x84))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x88))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x88))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x88))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100)))), Pos(Zero)), Neg(Succ(Succ(x100))), Neg(Succ(Succ(x99))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (76) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(vuz71, vuz70) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz71, vuz70), Pos(Zero)), vuz70, vuz71) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0))) (new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0))) (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0))) (new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0))) (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0))) (new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0))) (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0))) (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0))) ---------------------------------------- (77) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (78) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0))) ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (80) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (81) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (82) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0))) ---------------------------------------- (83) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (84) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (85) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (86) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0))) ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (88) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (90) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0))) ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, vuz70, vuz71) -> new_gcd0Gcd'0(vuz70, new_primRemInt(vuz71, vuz70)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error),new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error)) (new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error),new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error)) (new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error),new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error)) (new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error),new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error)) ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error) new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error) new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (96) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. ---------------------------------------- (97) Complex Obligation (AND) ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) 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(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (102) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (103) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (106) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (109) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0))))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (116) Complex Obligation (AND) ---------------------------------------- (117) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (118) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (120) 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, Succ(x2)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS02(x0, x1) ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (122) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0))))) ---------------------------------------- (123) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (124) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (126) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (128) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (129) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (130) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (132) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (134) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (135) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (136) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (137) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (138) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) ---------------------------------------- (139) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (140) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (141) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (142) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (143) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (144) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (145) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (146) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (147) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (148) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (149) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (150) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (151) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (152) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (153) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (154) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Neg(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(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, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (155) YES ---------------------------------------- (156) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (157) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (158) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (159) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (161) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (162) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (163) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (164) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (165) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (167) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (168) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (169) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (170) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (171) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (172) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (173) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (174) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (175) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (176) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (177) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (178) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (179) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (180) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (181) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (182) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (183) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (184) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (185) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (186) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (187) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (188) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (189) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (190) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (191) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (192) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (193) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (194) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (195) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (196) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (197) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (198) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (199) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (201) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (202) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (203) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (204) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (205) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (206) Complex Obligation (AND) ---------------------------------------- (207) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (208) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (209) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (210) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (211) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (212) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (213) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (214) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (215) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (216) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (217) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (218) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (219) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (220) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (221) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (222) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = 1 + 2*x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 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_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2, x_3, x_4)) = 3 + x_1 POL(new_primModNatS02(x_1, x_2)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (223) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (224) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (225) TRUE ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (228) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (229) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (230) Complex Obligation (AND) ---------------------------------------- (231) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (232) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (233) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (234) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (235) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (236) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (237) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (238) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (239) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (240) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x9), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(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(Succ(Zero))))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero))))=Neg(Succ(x23)) & Pos(Zero)=Pos(x22) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Succ(x8)=x24 & Succ(Succ(Zero))=x25 & new_primModNatS1(x24, x25)=Succ(x23) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x25)=Succ(x23) which results in the following new constraints: (5) (new_primModNatS01(x27, x26, x27, x26)=Succ(x23) & Succ(x8)=Succ(Succ(x27)) & Succ(Succ(Zero))=Succ(x26) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8))))))) (6) (Succ(Zero)=Succ(x23) & Succ(x8)=Succ(Zero) & Succ(Succ(Zero))=Succ(x28) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (x27=x30 & x26=x31 & new_primModNatS01(x27, x26, x30, x31)=Succ(x23) & Succ(Zero)=x26 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x27)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x27)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x27)))))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x27, x26, x30, x31)=Succ(x23) which results in the following new constraints: (9) (new_primModNatS02(x33, x32)=Succ(x23) & x33=Zero & x32=Zero & Succ(Zero)=x32 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x33)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x33)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x33)))))))) (10) (new_primModNatS01(x37, x36, x35, x34)=Succ(x23) & x37=Succ(x35) & x36=Succ(x34) & Succ(Zero)=x36 & (\/x38:new_primModNatS01(x37, x36, x35, x34)=Succ(x38) & x37=x35 & x36=x34 & Succ(Zero)=x36 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x37)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x37)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x37)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x37)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x37)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x37)))))))) (11) (new_primModNatS02(x41, x40)=Succ(x23) & x41=Succ(x39) & x40=Zero & Succ(Zero)=x40 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x41)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x41)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x41)))))))) (12) (Succ(Succ(x44))=Succ(x23) & x44=Zero & x43=Succ(x42) & Succ(Zero)=x43 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x44)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x44)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x44)))))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x10))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x11))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x11))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x10))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x11))))), Neg(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x10))))), 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(x10))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x10))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x17), Succ(Succ(Zero))))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x18))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x17)=x47 & Succ(Succ(Zero))=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x18)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x18)))) which results in the following new constraints: (3) (new_primModNatS01(x50, x49, x50, x49)=Succ(Succ(Succ(Succ(x18)))) & Succ(x17)=Succ(Succ(x50)) & Succ(Succ(Zero))=Succ(x49) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))) (4) (Succ(Zero)=Succ(Succ(Succ(Succ(x18)))) & Succ(x17)=Succ(Zero) & Succ(Succ(Zero))=Succ(x51) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x17), Succ(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(Succ(x18)))) & Succ(Zero)=x49 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x50)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x50)), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(Succ(x18)))) which results in the following new constraints: (6) (new_primModNatS02(x56, x55)=Succ(Succ(Succ(Succ(x18)))) & x56=Zero & x55=Zero & Succ(Zero)=x55 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x56)), Succ(Succ(Zero)))))) (7) (new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(Succ(x18)))) & x60=Succ(x58) & x59=Succ(x57) & Succ(Zero)=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(Succ(x61)))) & x60=x58 & x59=x57 & Succ(Zero)=x59 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Succ(Zero)))))) (8) (new_primModNatS02(x64, x63)=Succ(Succ(Succ(Succ(x18)))) & x64=Succ(x62) & x63=Zero & Succ(Zero)=x63 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Succ(Zero)))))) (9) (Succ(Succ(x67))=Succ(Succ(Succ(Succ(x18)))) & x67=Zero & x66=Succ(x65) & Succ(Zero)=x66 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Succ(Zero)))))) We solved constraint (6) using rules (I), (II), (III).We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x58))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x58))), Succ(Succ(Zero)))))) We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x10))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x58))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x58))), 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. ---------------------------------------- (241) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_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'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (243) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Neg(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(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(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS02(x15, x14)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x15 & Succ(Succ(Zero))=x14 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x17)))=x19 & Succ(Succ(Succ(x16)))=x18 & (\/x20:new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x20)))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x16))))), Neg(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), x17, x16)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x16)))))), Neg(Succ(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x16)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x17))), Succ(Succ(Succ(x16))), Succ(x17), Succ(x16))))) (5) (new_primModNatS02(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x21)))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(Succ(Zero)), Succ(x21), Zero)))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x15, x14)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_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(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x17)))=x19 & Succ(Succ(Succ(x16)))=x18 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x16)))))), Neg(Succ(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x16)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x17))), Succ(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(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x21)))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(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'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(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(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS02(x34, x33)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x34 & Succ(Succ(Succ(Zero)))=x33 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x36))))=x38 & Succ(Succ(Succ(Succ(x35))))=x37 & (\/x39:new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(Succ(x39)))) & Succ(Succ(Succ(x36)))=x38 & Succ(Succ(Succ(x35)))=x37 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x35)))))), Neg(Succ(Succ(Succ(Succ(Succ(x36)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x35)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(x36), Succ(x35))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x36)))), Succ(Succ(Succ(Succ(x35)))), Succ(Succ(x36)), Succ(Succ(x35)))))) (14) (new_primModNatS02(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x40))))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x40)))), Succ(Succ(Succ(Zero))), Succ(Succ(x40)), Succ(Zero))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(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'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x36)))), Succ(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'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x40)))), Succ(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'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(Succ(Zero)), Succ(x21), Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(new_primModNatS01(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Neg(Succ(x55)) & Pos(Zero)=Pos(x54) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Succ(Succ(x6))=x56 & Succ(Succ(x7))=x57 & new_primModNatS01(x56, x57, x6, x7)=Succ(x55) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x56, x57, x6, x7)=Succ(x55) which results in the following new constraints: (5) (new_primModNatS02(x59, x58)=Succ(x55) & Succ(Succ(Zero))=x59 & Succ(Succ(Zero))=x58 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) (6) (new_primModNatS01(x63, x62, x61, x60)=Succ(x55) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 & (\/x64:new_primModNatS01(x63, x62, x61, x60)=Succ(x64) & Succ(Succ(x61))=x63 & Succ(Succ(x60))=x62 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x61))))), Neg(Succ(Succ(Succ(Succ(x60))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x61)), Succ(Succ(x60)), x61, x60)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x60))))), Neg(Succ(Succ(Succ(Succ(x61))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))) (7) (new_primModNatS02(x67, x66)=Succ(x55) & Succ(Succ(Succ(x65)))=x67 & Succ(Succ(Zero))=x66 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x65)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x65))), Succ(Succ(Zero)), Succ(x65), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x65)))))))) (8) (Succ(Succ(x70))=Succ(x55) & Succ(Succ(Zero))=x70 & Succ(Succ(Succ(x68)))=x69 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x59, x58)=Succ(x55) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x72), Succ(x71)), Succ(x71))=Succ(x55) & Succ(Succ(Zero))=x72 & Succ(Succ(Zero))=x71 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS01(x63, x62, x61, x60)=Succ(x55) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x67, x66)=Succ(x55) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x91), Succ(x90)), Succ(x90))=Succ(x55) & Succ(Succ(Succ(x65)))=x91 & Succ(Succ(Zero))=x90 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x65)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x65))), Succ(Succ(Zero)), Succ(x65), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x65)))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x63, x62, x61, x60)=Succ(x55) which results in the following new constraints: (14) (new_primModNatS02(x78, x77)=Succ(x55) & Succ(Succ(Succ(Zero)))=x78 & Succ(Succ(Succ(Zero)))=x77 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (15) (new_primModNatS01(x82, x81, x80, x79)=Succ(x55) & Succ(Succ(Succ(Succ(x80))))=x82 & Succ(Succ(Succ(Succ(x79))))=x81 & (\/x83:new_primModNatS01(x82, x81, x80, x79)=Succ(x83) & Succ(Succ(Succ(x80)))=x82 & Succ(Succ(Succ(x79)))=x81 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x80)))))), Neg(Succ(Succ(Succ(Succ(Succ(x79)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x80))), Succ(Succ(Succ(x79))), Succ(x80), Succ(x79))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x79)))))), Neg(Succ(Succ(Succ(Succ(Succ(x80)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) (16) (new_primModNatS02(x86, x85)=Succ(x55) & Succ(Succ(Succ(Succ(x84))))=x86 & Succ(Succ(Succ(Zero)))=x85 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x84))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x84)))), Succ(Succ(Succ(Zero))), Succ(Succ(x84)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x84))))))))) (17) (Succ(Succ(x89))=Succ(x55) & Succ(Succ(Succ(Zero)))=x89 & Succ(Succ(Succ(Succ(x87))))=x88 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x84))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x84)))), Succ(Succ(Succ(Zero))), Succ(Succ(x84)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x84))))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x65)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x65))), Succ(Succ(Zero)), Succ(x65), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x65)))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x36)))), Succ(Succ(Succ(Succ(x35)))), Succ(Succ(x36)), Succ(Succ(x35)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x40)))), Succ(Succ(Succ(Zero))), Succ(Succ(x40)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(Succ(Zero)), Succ(x21), Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x84))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x84)))), Succ(Succ(Succ(Zero))), Succ(Succ(x84)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x84))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x65)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x65))), Succ(Succ(Zero)), Succ(x65), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x65)))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (244) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_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'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (245) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (246) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (247) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (248) 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(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (249) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (250) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (251) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (252) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (253) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (254) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (255) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (256) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (257) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (258) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (259) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (260) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0))))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) ---------------------------------------- (261) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (262) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (263) Complex Obligation (AND) ---------------------------------------- (264) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (265) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (266) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (267) 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, Succ(x2)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS02(x0, x1) ---------------------------------------- (268) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (269) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0))))) ---------------------------------------- (270) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (271) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (272) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (273) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (274) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (275) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (276) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (277) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (278) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (279) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (280) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (281) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero))))) ---------------------------------------- (282) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (283) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (284) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (285) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) ---------------------------------------- (286) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (287) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (288) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (289) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (290) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (291) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (292) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (293) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (294) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (295) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (296) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (297) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (298) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (299) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (300) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (301) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (302) YES ---------------------------------------- (303) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (304) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (305) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (306) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (307) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (308) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (309) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (310) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (311) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (312) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (313) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (314) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (315) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (316) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (317) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (318) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (319) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (320) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (321) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (322) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (323) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (324) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (325) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (326) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (327) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (328) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (329) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (330) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (331) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (332) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (333) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (334) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (335) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (336) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (337) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (338) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (339) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (340) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (341) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (342) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (343) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (344) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (345) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (346) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (347) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (348) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (349) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (350) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (351) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (352) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (353) Complex Obligation (AND) ---------------------------------------- (354) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (355) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (356) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (357) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (358) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (359) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (360) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (361) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (362) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (363) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (364) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (365) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (366) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 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 2 less nodes. ---------------------------------------- (368) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (369) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS02(x_1, x_2)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (370) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (371) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (372) TRUE ---------------------------------------- (373) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (374) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (375) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (376) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (377) Complex Obligation (AND) ---------------------------------------- (378) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (379) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (380) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (381) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (382) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (383) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (384) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (385) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (386) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (387) QReductionProof (EQUIVALENT) We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) ---------------------------------------- (388) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) We have to consider all (P,Q,R)-chains. ---------------------------------------- (389) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x9), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(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(Succ(Zero))))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero))))=Pos(Succ(x22)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x8)=x23 & Succ(Succ(Zero))=x24 & new_primModNatS1(x23, x24)=Succ(x22) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x23, x24)=Succ(x22) which results in the following new constraints: (5) (new_primModNatS01(x26, x25, x26, x25)=Succ(x22) & Succ(x8)=Succ(Succ(x26)) & Succ(Succ(Zero))=Succ(x25) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8))))))) (6) (Succ(Zero)=Succ(x22) & Succ(x8)=Succ(Zero) & Succ(Succ(Zero))=Succ(x27) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (x26=x29 & x25=x30 & new_primModNatS01(x26, x25, x29, x30)=Succ(x22) & Succ(Zero)=x25 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x26)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x26, x25, x29, x30)=Succ(x22) which results in the following new constraints: (9) (new_primModNatS02(x32, x31)=Succ(x22) & x32=Zero & x31=Zero & Succ(Zero)=x31 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x32)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x32)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x32)))))))) (10) (new_primModNatS01(x36, x35, x34, x33)=Succ(x22) & x36=Succ(x34) & x35=Succ(x33) & Succ(Zero)=x35 & (\/x37:new_primModNatS01(x36, x35, x34, x33)=Succ(x37) & x36=x34 & x35=x33 & Succ(Zero)=x35 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x36)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x36)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x36)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x36)))))))) (11) (new_primModNatS02(x40, x39)=Succ(x22) & x40=Succ(x38) & x39=Zero & Succ(Zero)=x39 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x40)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x40)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x40)))))))) (12) (Succ(Succ(x43))=Succ(x22) & x43=Zero & x42=Succ(x41) & Succ(Zero)=x42 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x43)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x43)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x43)))))))) 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(x34))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x34))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x34))))))))) 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'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x11))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x11))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x11))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x10))))), 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(x10))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x17), Succ(Succ(Zero))))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x18))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x17)=x46 & Succ(Succ(Zero))=x47 & new_primModNatS1(x46, x47)=Succ(Succ(Succ(Succ(x18)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x46, x47)=Succ(Succ(Succ(Succ(x18)))) which results in the following new constraints: (3) (new_primModNatS01(x49, x48, x49, x48)=Succ(Succ(Succ(Succ(x18)))) & Succ(x17)=Succ(Succ(x49)) & Succ(Succ(Zero))=Succ(x48) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))) (4) (Succ(Zero)=Succ(Succ(Succ(Succ(x18)))) & Succ(x17)=Succ(Zero) & Succ(Succ(Zero))=Succ(x50) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x17), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x49=x52 & x48=x53 & new_primModNatS01(x49, x48, x52, x53)=Succ(Succ(Succ(Succ(x18)))) & Succ(Zero)=x48 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x49)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x49)), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x49, x48, x52, x53)=Succ(Succ(Succ(Succ(x18)))) which results in the following new constraints: (6) (new_primModNatS02(x55, x54)=Succ(Succ(Succ(Succ(x18)))) & x55=Zero & x54=Zero & Succ(Zero)=x54 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x55)), Succ(Succ(Zero)))))) (7) (new_primModNatS01(x59, x58, x57, x56)=Succ(Succ(Succ(Succ(x18)))) & x59=Succ(x57) & x58=Succ(x56) & Succ(Zero)=x58 & (\/x60:new_primModNatS01(x59, x58, x57, x56)=Succ(Succ(Succ(Succ(x60)))) & x59=x57 & x58=x56 & Succ(Zero)=x58 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x59)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x59)), Succ(Succ(Zero)))))) (8) (new_primModNatS02(x63, x62)=Succ(Succ(Succ(Succ(x18)))) & x63=Succ(x61) & x62=Zero & Succ(Zero)=x62 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x63)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x63)), Succ(Succ(Zero)))))) (9) (Succ(Succ(x66))=Succ(Succ(Succ(Succ(x18)))) & x66=Zero & x65=Succ(x64) & Succ(Zero)=x65 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x66)), Succ(Succ(Zero)))))) We solved constraint (6) using rules (I), (II), (III).We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x57))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x57))), Succ(Succ(Zero)))))) We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x34))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x34))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x34))))))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x57))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x57))), 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. ---------------------------------------- (390) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (391) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (392) QReductionProof (EQUIVALENT) We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) ---------------------------------------- (393) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) We have to consider all (P,Q,R)-chains. ---------------------------------------- (394) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Succ(x3)), Succ(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(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS02(x15, x14)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x15 & Succ(Succ(Zero))=x14 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x17)))=x19 & Succ(Succ(Succ(x16)))=x18 & (\/x20:new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x20)))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Pos(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), x17, x16)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x16)))))), Pos(Succ(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x16)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x17))), Succ(Succ(Succ(x16))), Succ(x17), Succ(x16))))) (5) (new_primModNatS02(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x21)))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(Succ(Zero)), Succ(x21), Zero)))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x15, x14)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_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(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x17)))=x19 & Succ(Succ(Succ(x16)))=x18 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x16)))))), Pos(Succ(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x16)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x17))), Succ(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(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x21)))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(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'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(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(x19, x18, x17, x16)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS02(x34, x33)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x34 & Succ(Succ(Succ(Zero)))=x33 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x36))))=x38 & Succ(Succ(Succ(Succ(x35))))=x37 & (\/x39:new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(Succ(x39)))) & Succ(Succ(Succ(x36)))=x38 & Succ(Succ(Succ(x35)))=x37 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x35)))))), Pos(Succ(Succ(Succ(Succ(Succ(x36)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x35)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(x36), Succ(x35))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x36)))), Succ(Succ(Succ(Succ(x35)))), Succ(Succ(x36)), Succ(Succ(x35)))))) (14) (new_primModNatS02(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x40))))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x40)))), Succ(Succ(Succ(Zero))), Succ(Succ(x40)), Succ(Zero))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(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'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x36)))), Succ(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'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x40)))), Succ(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'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(Succ(Zero)), Succ(x21), Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(new_primModNatS01(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Pos(Succ(x54)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(Succ(x6))=x55 & Succ(Succ(x7))=x56 & new_primModNatS01(x55, x56, x6, x7)=Succ(x54) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x55, x56, x6, x7)=Succ(x54) which results in the following new constraints: (5) (new_primModNatS02(x58, x57)=Succ(x54) & Succ(Succ(Zero))=x58 & Succ(Succ(Zero))=x57 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) (6) (new_primModNatS01(x62, x61, x60, x59)=Succ(x54) & Succ(Succ(Succ(x60)))=x62 & Succ(Succ(Succ(x59)))=x61 & (\/x63:new_primModNatS01(x62, x61, x60, x59)=Succ(x63) & Succ(Succ(x60))=x62 & Succ(Succ(x59))=x61 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x60))))), Pos(Succ(Succ(Succ(Succ(x59))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x60)), Succ(Succ(x59)), x60, x59)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x59))))), Pos(Succ(Succ(Succ(Succ(x60))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x60))), Succ(Succ(Succ(x59))), Succ(x60), Succ(x59))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))) (7) (new_primModNatS02(x66, x65)=Succ(x54) & Succ(Succ(Succ(x64)))=x66 & Succ(Succ(Zero))=x65 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x64))), Succ(Succ(Zero)), Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x64)))))))) (8) (Succ(Succ(x69))=Succ(x54) & Succ(Succ(Zero))=x69 & Succ(Succ(Succ(x67)))=x68 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x58, x57)=Succ(x54) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x71), Succ(x70)), Succ(x70))=Succ(x54) & Succ(Succ(Zero))=x71 & Succ(Succ(Zero))=x70 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS01(x62, x61, x60, x59)=Succ(x54) & Succ(Succ(Succ(x60)))=x62 & Succ(Succ(Succ(x59)))=x61 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x60))), Succ(Succ(Succ(x59))), Succ(x60), Succ(x59))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x66, x65)=Succ(x54) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x90), Succ(x89)), Succ(x89))=Succ(x54) & Succ(Succ(Succ(x64)))=x90 & Succ(Succ(Zero))=x89 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x64))), Succ(Succ(Zero)), Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x64)))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x62, x61, x60, x59)=Succ(x54) which results in the following new constraints: (14) (new_primModNatS02(x77, x76)=Succ(x54) & Succ(Succ(Succ(Zero)))=x77 & Succ(Succ(Succ(Zero)))=x76 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (15) (new_primModNatS01(x81, x80, x79, x78)=Succ(x54) & Succ(Succ(Succ(Succ(x79))))=x81 & Succ(Succ(Succ(Succ(x78))))=x80 & (\/x82:new_primModNatS01(x81, x80, x79, x78)=Succ(x82) & Succ(Succ(Succ(x79)))=x81 & Succ(Succ(Succ(x78)))=x80 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x79)))))), Pos(Succ(Succ(Succ(Succ(Succ(x78)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x79))), Succ(Succ(Succ(x78))), Succ(x79), Succ(x78))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x78)))))), Pos(Succ(Succ(Succ(Succ(Succ(x79)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x79)))), Succ(Succ(Succ(Succ(x78)))), Succ(Succ(x79)), Succ(Succ(x78)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x78))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))) (16) (new_primModNatS02(x85, x84)=Succ(x54) & Succ(Succ(Succ(Succ(x83))))=x85 & Succ(Succ(Succ(Zero)))=x84 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x83))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x83)))), Succ(Succ(Succ(Zero))), Succ(Succ(x83)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x83))))))))) (17) (Succ(Succ(x88))=Succ(x54) & Succ(Succ(Succ(Zero)))=x88 & Succ(Succ(Succ(Succ(x86))))=x87 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x79)))), Succ(Succ(Succ(Succ(x78)))), Succ(Succ(x79)), Succ(Succ(x78)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x78))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x83))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x83)))), Succ(Succ(Succ(Zero))), Succ(Succ(x83)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x83))))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x64))), Succ(Succ(Zero)), Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x64)))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x36)))), Succ(Succ(Succ(Succ(x35)))), Succ(Succ(x36)), Succ(Succ(x35)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x40)))), Succ(Succ(Succ(Zero))), Succ(Succ(x40)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x21))), Succ(Succ(Zero)), Succ(x21), Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x79)))), Succ(Succ(Succ(Succ(x78)))), Succ(Succ(x79)), Succ(Succ(x78)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x78))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x83))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x83)))), Succ(Succ(Succ(Zero))), Succ(Succ(x83)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x83))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x64))), Succ(Succ(Zero)), Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x64)))))))) 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. ---------------------------------------- (395) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (396) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (397) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (398) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (399) 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(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (400) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (401) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (402) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (403) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (404) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (405) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (406) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (407) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (408) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (409) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (410) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (411) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0))))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) ---------------------------------------- (412) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (413) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (414) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (415) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (416) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (417) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0))))) ---------------------------------------- (418) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (419) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0))))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) ---------------------------------------- (420) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (421) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (422) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (423) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0))))) ---------------------------------------- (424) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (425) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (426) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (427) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) ---------------------------------------- (428) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (429) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) ---------------------------------------- (430) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (431) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (432) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (433) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (434) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (435) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (436) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (437) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (438) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (439) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))))) ---------------------------------------- (440) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (441) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (442) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (443) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (444) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (445) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (446) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (447) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (448) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (449) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (450) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (451) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. ---------------------------------------- (452) Complex Obligation (AND) ---------------------------------------- (453) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (454) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (455) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (456) 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, Succ(x2)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS02(x0, x1) ---------------------------------------- (457) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (458) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (459) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (460) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (461) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (462) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (463) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (464) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (465) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (466) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero))))) ---------------------------------------- (467) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (468) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (469) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (470) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) ---------------------------------------- (471) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (472) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (473) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (474) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (475) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (476) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (477) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (478) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (479) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (480) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (481) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (482) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (483) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (484) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (485) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (486) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Neg(x_1)) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (487) YES ---------------------------------------- (488) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (489) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (490) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (491) 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, Succ(x2)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primModNatS02(x0, x1) ---------------------------------------- (492) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (493) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (494) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (495) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (496) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (497) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) ---------------------------------------- (498) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (499) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (500) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (501) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (502) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (503) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (504) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (505) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (506) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (507) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (508) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (509) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (510) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (511) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (512) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (513) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (514) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (515) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (516) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (517) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (518) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (519) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (520) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (521) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (522) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (523) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (524) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (525) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (526) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (527) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(False) = 1 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (528) YES ---------------------------------------- (529) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (530) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (531) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (532) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (533) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (534) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (535) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (536) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (537) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (538) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (539) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (540) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (541) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (542) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (543) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (544) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (545) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (546) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (547) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (548) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (549) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (550) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (551) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (552) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (553) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (554) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (555) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (556) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (557) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (558) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))))) ---------------------------------------- (559) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (560) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (561) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (562) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (563) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (564) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (565) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (566) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (567) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (568) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (569) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 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'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (572) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (573) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (574) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (575) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (576) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (577) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (578) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (579) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (580) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (581) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (582) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (583) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (584) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (585) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (586) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (587) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (588) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (589) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (590) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (591) Complex Obligation (AND) ---------------------------------------- (592) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (593) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (594) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (595) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (596) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (597) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (598) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (599) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (600) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (601) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (602) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (603) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (604) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (605) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (606) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (607) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (608) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (609) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x2, Zero, x2, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(x1, Zero, x1, Zero))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS01(x1, Zero, x1, Zero))=Pos(Succ(x22)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Zero=x23 & x1=x24 & Zero=x25 & new_primModNatS01(x1, x23, x24, x25)=Succ(x22) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1, x23, x24, x25)=Succ(x22) which results in the following new constraints: (5) (new_primModNatS02(x27, x26)=Succ(x22) & Zero=x26 & x27=Zero & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x27))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x27, Zero, x27, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x27))))))) (6) (new_primModNatS01(x31, x30, x29, x28)=Succ(x22) & Zero=x30 & x31=Succ(x29) & Zero=Succ(x28) & (\/x32:new_primModNatS01(x31, x30, x29, x28)=Succ(x32) & Zero=x30 & x31=x29 & Zero=x28 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x31, Zero, x31, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x31))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x31, Zero, x31, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x31))))))) (7) (new_primModNatS02(x35, x34)=Succ(x22) & Zero=x34 & x35=Succ(x33) & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x35))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x35, Zero, x35, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x35))))))) (8) (Succ(Succ(x38))=Succ(x22) & Zero=x37 & x38=Zero & Zero=Succ(x36) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x38))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x38, Zero, x38, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x38))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (9) (Zero=x39 & new_primModNatS02(x39, x26)=Succ(x22) & Zero=x26 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x33)=x46 & new_primModNatS02(x46, x34)=Succ(x22) & Zero=x34 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x33)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x33), Zero, Succ(x33), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x33)))))))) We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x39, x26)=Succ(x22) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x41), Succ(x40)), Succ(x40))=Succ(x22) & Zero=x41 & Zero=x40 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(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(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x46, x34)=Succ(x22) which results in the following new constraint: (13) (new_primModNatS1(new_primMinusNatS0(Succ(x48), Succ(x47)), Succ(x47))=Succ(x22) & Succ(x33)=x48 & Zero=x47 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x33)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x33), Zero, Succ(x33), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x33)))))))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x33)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x33), Zero, Succ(x33), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x33)))))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x7, Zero, x7, Zero))), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x8)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x7, Zero, x7, Zero)))=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x7, Zero, x7, Zero)))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Zero=x53 & x7=x54 & Zero=x55 & new_primModNatS01(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x7, Zero, x7, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) which results in the following new constraints: (3) (new_primModNatS02(x57, x56)=Succ(Succ(Succ(x8))) & Zero=x56 & x57=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x57))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x57, Zero, x57, Zero)))) (4) (new_primModNatS01(x61, x60, x59, x58)=Succ(Succ(Succ(x8))) & Zero=x60 & x61=Succ(x59) & Zero=Succ(x58) & (\/x62:new_primModNatS01(x61, x60, x59, x58)=Succ(Succ(Succ(x62))) & Zero=x60 & x61=x59 & Zero=x58 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x61))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x61, Zero, x61, Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x61))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x61, Zero, x61, Zero)))) (5) (new_primModNatS02(x65, x64)=Succ(Succ(Succ(x8))) & Zero=x64 & x65=Succ(x63) & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x65))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x65, Zero, x65, Zero)))) (6) (Succ(Succ(x68))=Succ(Succ(Succ(x8))) & Zero=x67 & x68=Zero & Zero=Succ(x66) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x68))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x68, Zero, x68, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x69 & new_primModNatS02(x69, x56)=Succ(Succ(Succ(x8))) & Zero=x56 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(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(x63)=x76 & new_primModNatS02(x76, x64)=Succ(Succ(Succ(x8))) & Zero=x64 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x63)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x63), Zero, Succ(x63), 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(x69, x56)=Succ(Succ(Succ(x8))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x71), Succ(x70)), Succ(x70))=Succ(Succ(Succ(x8))) & Zero=x71 & Zero=x70 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(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'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(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(x76, x64)=Succ(Succ(Succ(x8))) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x78), Succ(x77)), Succ(x77))=Succ(Succ(Succ(x8))) & Succ(x63)=x78 & Zero=x77 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x63)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x63), Zero, Succ(x63), Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x63)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x63), Zero, Succ(x63), Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x16, Zero, x16, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x16)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x33)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x33), Zero, Succ(x33), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x33)))))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x63)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x63), Zero, Succ(x63), Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (610) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (611) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (612) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (613) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (614) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (615) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (616) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (617) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (618) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x3, Zero, x3, Zero))), new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x4))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x4)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x3, Zero, x3, Zero)))=new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x4))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x3, Zero, x3, Zero)))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Zero=x20 & x3=x21 & Zero=x22 & new_primModNatS01(x3, x20, x21, x22)=Succ(Succ(Succ(x4))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x3, Zero, x3, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x3, x20, x21, x22)=Succ(Succ(Succ(x4))) which results in the following new constraints: (3) (new_primModNatS02(x24, x23)=Succ(Succ(Succ(x4))) & Zero=x23 & x24=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x24))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x24, Zero, x24, Zero)))) (4) (new_primModNatS01(x28, x27, x26, x25)=Succ(Succ(Succ(x4))) & Zero=x27 & x28=Succ(x26) & Zero=Succ(x25) & (\/x29:new_primModNatS01(x28, x27, x26, x25)=Succ(Succ(Succ(x29))) & Zero=x27 & x28=x26 & Zero=x25 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x28))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x28, Zero, x28, Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x28))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x28, Zero, x28, Zero)))) (5) (new_primModNatS02(x32, x31)=Succ(Succ(Succ(x4))) & Zero=x31 & x32=Succ(x30) & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x32))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x32, Zero, x32, Zero)))) (6) (Succ(Succ(x35))=Succ(Succ(Succ(x4))) & Zero=x34 & x35=Zero & Zero=Succ(x33) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x35))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x35, Zero, x35, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x36 & new_primModNatS02(x36, x23)=Succ(Succ(Succ(x4))) & Zero=x23 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(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(x30)=x43 & new_primModNatS02(x43, x31)=Succ(Succ(Succ(x4))) & Zero=x31 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x30)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x30), Zero, Succ(x30), 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(x36, x23)=Succ(Succ(Succ(x4))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x38), Succ(x37)), Succ(x37))=Succ(Succ(Succ(x4))) & Zero=x38 & Zero=x37 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(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'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x43, x31)=Succ(Succ(Succ(x4))) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x45), Succ(x44)), Succ(x44))=Succ(Succ(Succ(x4))) & Succ(x30)=x45 & Zero=x44 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x30)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x30), Zero, Succ(x30), Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x30)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x30), Zero, Succ(x30), Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x8, Zero, x8, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x11)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x11, Zero, x11, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x11)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(x10, Zero, x10, Zero))=x50 & Pos(Zero)=x51 & new_primEqInt(x50, x51)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x50, x51)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS01(x10, Zero, x10, Zero))=Neg(Succ(x53)) & Pos(Zero)=Pos(x52) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Zero=x54 & x10=x55 & Zero=x56 & new_primModNatS01(x10, x54, x55, x56)=Succ(x53) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x10, x54, x55, x56)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS02(x58, x57)=Succ(x53) & Zero=x57 & x58=Zero & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x58))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x58, Zero, x58, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x58))))))) (6) (new_primModNatS01(x62, x61, x60, x59)=Succ(x53) & Zero=x61 & x62=Succ(x60) & Zero=Succ(x59) & (\/x63:new_primModNatS01(x62, x61, x60, x59)=Succ(x63) & Zero=x61 & x62=x60 & Zero=x59 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x62))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x62, Zero, x62, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x62))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x62))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x62, Zero, x62, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x62))))))) (7) (new_primModNatS02(x66, x65)=Succ(x53) & Zero=x65 & x66=Succ(x64) & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x66))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x66, Zero, x66, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x66))))))) (8) (Succ(Succ(x69))=Succ(x53) & Zero=x68 & x69=Zero & Zero=Succ(x67) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x69))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x69, Zero, x69, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x69))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (9) (Zero=x70 & new_primModNatS02(x70, x57)=Succ(x53) & Zero=x57 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x64)=x77 & new_primModNatS02(x77, x65)=Succ(x53) & Zero=x65 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x64), Zero, Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))) We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x70, x57)=Succ(x53) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x72), Succ(x71)), Succ(x71))=Succ(x53) & Zero=x72 & Zero=x71 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x77, x65)=Succ(x53) which results in the following new constraint: (13) (new_primModNatS1(new_primMinusNatS0(Succ(x79), Succ(x78)), Succ(x78))=Succ(x53) & Succ(x64)=x79 & Zero=x78 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x64), Zero, Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x64), Zero, Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x17)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x17)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x17)))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x30)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x30), Zero, Succ(x30), Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x64)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x64), Zero, Succ(x64), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (619) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (620) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (621) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (622) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (623) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (624) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (625) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (626) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (627) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (628) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (629) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (630) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (631) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (632) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (633) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (634) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (635) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (636) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (637) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (638) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (639) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (640) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (641) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (642) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (643) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (644) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (645) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (646) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (647) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (648) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (649) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (650) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (651) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (652) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (653) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (654) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (655) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (656) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (657) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (658) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (659) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (660) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (661) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (662) Complex Obligation (AND) ---------------------------------------- (663) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (664) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (665) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (666) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), 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(x1))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x13))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x14)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x14), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x14)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x13))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x13))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=Pos(Succ(x22)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x13))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x13)=x23 & Succ(Succ(Zero))=x24 & new_primModNatS1(x23, x24)=Succ(x22) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x13))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x23, x24)=Succ(x22) which results in the following new constraints: (5) (Succ(Zero)=Succ(x22) & Succ(x13)=Succ(Zero) & Succ(Succ(Zero))=Succ(x25) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x13))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13))))))) (6) (new_primModNatS01(x27, x26, x27, x26)=Succ(x22) & Succ(x13)=Succ(Succ(x27)) & Succ(Succ(Zero))=Succ(x26) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x13))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x27=x29 & x26=x30 & new_primModNatS01(x27, x26, x29, x30)=Succ(x22) & Succ(Zero)=x26 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x27)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x27)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x27)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x27, x26, x29, x30)=Succ(x22) which results in the following new constraints: (9) (new_primModNatS02(x32, x31)=Succ(x22) & x32=Zero & x31=Zero & Succ(Zero)=x31 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x32)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x32)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x32)))))))) (10) (new_primModNatS01(x36, x35, x34, x33)=Succ(x22) & x36=Succ(x34) & x35=Succ(x33) & Succ(Zero)=x35 & (\/x37:new_primModNatS01(x36, x35, x34, x33)=Succ(x37) & x36=x34 & x35=x33 & Succ(Zero)=x35 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x36)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x36)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x36)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x36)))))))) (11) (new_primModNatS02(x40, x39)=Succ(x22) & x40=Succ(x38) & x39=Zero & Succ(Zero)=x39 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x40)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x40)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x40)))))))) (12) (Succ(Succ(x43))=Succ(x22) & x43=Zero & x42=Succ(x41) & Succ(Zero)=x42 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x43)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x43)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x43)))))))) 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(x34))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x34))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x34))))))))) 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'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x15), Succ(Succ(Zero))))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x16)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x16)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x15)=x46 & Succ(Succ(Zero))=x47 & new_primModNatS1(x46, x47)=Succ(Succ(Succ(Succ(x16)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x46, x47)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Zero) & Succ(Succ(Zero))=Succ(x48) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) (4) (new_primModNatS01(x50, x49, x50, x49)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Succ(x50)) & Succ(Succ(Zero))=Succ(x49) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x50=x52 & x49=x53 & new_primModNatS01(x50, x49, x52, x53)=Succ(Succ(Succ(Succ(x16)))) & Succ(Zero)=x49 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x50)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x50)), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x50, x49, x52, x53)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (6) (new_primModNatS02(x55, x54)=Succ(Succ(Succ(Succ(x16)))) & x55=Zero & x54=Zero & Succ(Zero)=x54 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x55)), Succ(Succ(Zero)))))) (7) (new_primModNatS01(x59, x58, x57, x56)=Succ(Succ(Succ(Succ(x16)))) & x59=Succ(x57) & x58=Succ(x56) & Succ(Zero)=x58 & (\/x60:new_primModNatS01(x59, x58, x57, x56)=Succ(Succ(Succ(Succ(x60)))) & x59=x57 & x58=x56 & Succ(Zero)=x58 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x59)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x59)), Succ(Succ(Zero)))))) (8) (new_primModNatS02(x63, x62)=Succ(Succ(Succ(Succ(x16)))) & x63=Succ(x61) & x62=Zero & Succ(Zero)=x62 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x63)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x63)), Succ(Succ(Zero)))))) (9) (Succ(Succ(x66))=Succ(Succ(Succ(Succ(x16)))) & x66=Zero & x65=Succ(x64) & Succ(Zero)=x65 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x66)), Succ(Succ(Zero)))))) We solved constraint (6) using rules (I), (II), (III).We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x57))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x57))), Succ(Succ(Zero)))))) We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x34))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x34))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x34))))))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x57))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x57))), 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. ---------------------------------------- (667) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (668) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (669) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (670) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (671) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (672) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (673) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (674) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (675) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (676) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (677) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (678) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (679) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x14), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=Neg(Succ(x23)) & Pos(Zero)=Pos(x22) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Succ(x13)=x24 & Succ(Succ(Zero))=x25 & new_primModNatS1(x24, x25)=Succ(x23) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x25)=Succ(x23) which results in the following new constraints: (5) (Succ(Zero)=Succ(x23) & Succ(x13)=Succ(Zero) & Succ(Succ(Zero))=Succ(x26) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) (6) (new_primModNatS01(x28, x27, x28, x27)=Succ(x23) & Succ(x13)=Succ(Succ(x28)) & Succ(Succ(Zero))=Succ(x27) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x28=x30 & x27=x31 & new_primModNatS01(x28, x27, x30, x31)=Succ(x23) & Succ(Zero)=x27 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x28)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x28)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x28)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x28, x27, x30, x31)=Succ(x23) which results in the following new constraints: (9) (new_primModNatS02(x33, x32)=Succ(x23) & x33=Zero & x32=Zero & Succ(Zero)=x32 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x33)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x33)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x33)))))))) (10) (new_primModNatS01(x37, x36, x35, x34)=Succ(x23) & x37=Succ(x35) & x36=Succ(x34) & Succ(Zero)=x36 & (\/x38:new_primModNatS01(x37, x36, x35, x34)=Succ(x38) & x37=x35 & x36=x34 & Succ(Zero)=x36 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x37)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x37)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x37)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x37)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x37)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x37)))))))) (11) (new_primModNatS02(x41, x40)=Succ(x23) & x41=Succ(x39) & x40=Zero & Succ(Zero)=x40 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x41)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x41)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x41)))))))) (12) (Succ(Succ(x44))=Succ(x23) & x44=Zero & x43=Succ(x42) & Succ(Zero)=x43 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x44)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x44)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x44)))))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero))))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x15)=x47 & Succ(Succ(Zero))=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Zero) & Succ(Succ(Zero))=Succ(x49) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) (4) (new_primModNatS01(x51, x50, x51, x50)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Succ(x51)) & Succ(Succ(Zero))=Succ(x50) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x51=x53 & x50=x54 & new_primModNatS01(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) & Succ(Zero)=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x51)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x51)), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (6) (new_primModNatS02(x56, x55)=Succ(Succ(Succ(Succ(x16)))) & x56=Zero & x55=Zero & Succ(Zero)=x55 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x56)), Succ(Succ(Zero)))))) (7) (new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(Succ(x16)))) & x60=Succ(x58) & x59=Succ(x57) & Succ(Zero)=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(Succ(x61)))) & x60=x58 & x59=x57 & Succ(Zero)=x59 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Succ(Zero)))))) (8) (new_primModNatS02(x64, x63)=Succ(Succ(Succ(Succ(x16)))) & x64=Succ(x62) & x63=Zero & Succ(Zero)=x63 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Succ(Zero)))))) (9) (Succ(Succ(x67))=Succ(Succ(Succ(Succ(x16)))) & x67=Zero & x66=Succ(x65) & Succ(Zero)=x66 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Succ(Zero)))))) We solved constraint (6) using rules (I), (II), (III).We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x58))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x58))), Succ(Succ(Zero)))))) We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x35))))))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x58))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x58))), 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. ---------------------------------------- (680) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (681) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_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'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (682) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x40 & Succ(Succ(x2))=x41 & new_primModNatS01(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS02(x43, x42)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x43 & Succ(Succ(Zero))=x42 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x47, x46, x45, x44)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x45)))=x47 & Succ(Succ(Succ(x44)))=x46 & (\/x48:new_primModNatS01(x47, x46, x45, x44)=Succ(Succ(Succ(Succ(x48)))) & Succ(Succ(x45))=x47 & Succ(Succ(x44))=x46 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x44))))), Neg(Succ(Succ(Succ(Succ(x45))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x44))))), Neg(new_primModNatS01(Succ(Succ(x45)), Succ(Succ(x44)), x45, x44)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x44)))))), Neg(Succ(Succ(Succ(Succ(Succ(x45)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x44)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x45))), Succ(Succ(Succ(x44))), Succ(x45), Succ(x44))))) (5) (new_primModNatS02(x51, x50)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x49)))=x51 & Succ(Succ(Zero))=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x49)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x49))), Succ(Succ(Zero)), Succ(x49), Zero)))) (6) (Succ(Succ(x54))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x54 & Succ(Succ(Succ(x52)))=x53 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x43, x42)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x56), Succ(x55)), Succ(x55))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x56 & Succ(Succ(Zero))=x55 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_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(x47, x46, x45, x44)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x45)))=x47 & Succ(Succ(Succ(x44)))=x46 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x44)))))), Neg(Succ(Succ(Succ(Succ(Succ(x45)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x44)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x45))), Succ(Succ(Succ(x44))), Succ(x45), Succ(x44))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x51, x50)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x75), Succ(x74)), Succ(x74))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x49)))=x75 & Succ(Succ(Zero))=x74 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x49)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x49))), Succ(Succ(Zero)), Succ(x49), Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(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(x47, x46, x45, x44)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS02(x62, x61)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x62 & Succ(Succ(Succ(Zero)))=x61 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x66, x65, x64, x63)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x64))))=x66 & Succ(Succ(Succ(Succ(x63))))=x65 & (\/x67:new_primModNatS01(x66, x65, x64, x63)=Succ(Succ(Succ(Succ(x67)))) & Succ(Succ(Succ(x64)))=x66 & Succ(Succ(Succ(x63)))=x65 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x63)))))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x63)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x64))), Succ(Succ(Succ(x63))), Succ(x64), Succ(x63))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x63))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x63))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x64)))), Succ(Succ(Succ(Succ(x63)))), Succ(Succ(x64)), Succ(Succ(x63)))))) (14) (new_primModNatS02(x70, x69)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x68))))=x70 & Succ(Succ(Succ(Zero)))=x69 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x68))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x68)))), Succ(Succ(Succ(Zero))), Succ(Succ(x68)), Succ(Zero))))) (15) (Succ(Succ(x73))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x73 & Succ(Succ(Succ(Succ(x71))))=x72 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(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'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x63))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x63))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x64)))), Succ(Succ(Succ(Succ(x63)))), Succ(Succ(x64)), Succ(Succ(x63)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x68))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x68)))), Succ(Succ(Succ(Zero))), Succ(Succ(x68)), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x49)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x49))), Succ(Succ(Zero)), Succ(x49), Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x16))))), Pos(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), x17, x16))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=x80 & Pos(Zero)=x81 & new_primEqInt(x80, x81)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x80, x81)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Pos(Succ(x82)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) (4) (False=False & Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Neg(Succ(x84)) & Pos(Zero)=Pos(x83) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x14))=x85 & Succ(Succ(x15))=x86 & new_primModNatS01(x85, x86, x14, x15)=Succ(x82) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x85, x86, x14, x15)=Succ(x82) which results in the following new constraints: (6) (new_primModNatS02(x88, x87)=Succ(x82) & Succ(Succ(Zero))=x88 & Succ(Succ(Zero))=x87 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) (7) (new_primModNatS01(x92, x91, x90, x89)=Succ(x82) & Succ(Succ(Succ(x90)))=x92 & Succ(Succ(Succ(x89)))=x91 & (\/x93:new_primModNatS01(x92, x91, x90, x89)=Succ(x93) & Succ(Succ(x90))=x92 & Succ(Succ(x89))=x91 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x90))))), Neg(Succ(Succ(Succ(Succ(x89))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x90)), Succ(Succ(x89)), x90, x89)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x89))))), Pos(Succ(Succ(Succ(Succ(x90))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x90)))))), Neg(Succ(Succ(Succ(Succ(Succ(x89)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x90))), Succ(Succ(Succ(x89))), Succ(x90), Succ(x89))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x89)))))), Pos(Succ(Succ(Succ(Succ(Succ(x90)))))))) (8) (new_primModNatS02(x96, x95)=Succ(x82) & Succ(Succ(Succ(x94)))=x96 & Succ(Succ(Zero))=x95 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x94)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x94))), Succ(Succ(Zero)), Succ(x94), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x94)))))))) (9) (Succ(Succ(x99))=Succ(x82) & Succ(Succ(Zero))=x99 & Succ(Succ(Succ(x97)))=x98 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x88, x87)=Succ(x82) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x101), Succ(x100)), Succ(x100))=Succ(x82) & Succ(Succ(Zero))=x101 & Succ(Succ(Zero))=x100 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x92, x91, x90, x89)=Succ(x82) & Succ(Succ(Succ(x90)))=x92 & Succ(Succ(Succ(x89)))=x91 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x90)))))), Neg(Succ(Succ(Succ(Succ(Succ(x89)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x90))), Succ(Succ(Succ(x89))), Succ(x90), Succ(x89))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x89)))))), Pos(Succ(Succ(Succ(Succ(Succ(x90)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x96, x95)=Succ(x82) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x120), Succ(x119)), Succ(x119))=Succ(x82) & Succ(Succ(Succ(x94)))=x120 & Succ(Succ(Zero))=x119 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x94)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x94))), Succ(Succ(Zero)), Succ(x94), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x94)))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x92, x91, x90, x89)=Succ(x82) which results in the following new constraints: (15) (new_primModNatS02(x107, x106)=Succ(x82) & Succ(Succ(Succ(Zero)))=x107 & Succ(Succ(Succ(Zero)))=x106 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (16) (new_primModNatS01(x111, x110, x109, x108)=Succ(x82) & Succ(Succ(Succ(Succ(x109))))=x111 & Succ(Succ(Succ(Succ(x108))))=x110 & (\/x112:new_primModNatS01(x111, x110, x109, x108)=Succ(x112) & Succ(Succ(Succ(x109)))=x111 & Succ(Succ(Succ(x108)))=x110 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x109)))))), Neg(Succ(Succ(Succ(Succ(Succ(x108)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x109))), Succ(Succ(Succ(x108))), Succ(x109), Succ(x108))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x108)))))), Pos(Succ(Succ(Succ(Succ(Succ(x109)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x108))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x109)))), Succ(Succ(Succ(Succ(x108)))), Succ(Succ(x109)), Succ(Succ(x108)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))) (17) (new_primModNatS02(x115, x114)=Succ(x82) & Succ(Succ(Succ(Succ(x113))))=x115 & Succ(Succ(Succ(Zero)))=x114 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x113))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x113)))), Succ(Succ(Succ(Zero))), Succ(Succ(x113)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x113))))))))) (18) (Succ(Succ(x118))=Succ(x82) & Succ(Succ(Succ(Zero)))=x118 & Succ(Succ(Succ(Succ(x116))))=x117 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x108))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x109)))), Succ(Succ(Succ(Succ(x108)))), Succ(Succ(x109)), Succ(Succ(x108)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x113))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x113)))), Succ(Succ(Succ(Zero))), Succ(Succ(x113)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x113))))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x94)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x94))), Succ(Succ(Zero)), Succ(x94), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x94)))))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS01(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x28)), Succ(Succ(x29)), x28, x29)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x29))))), Neg(Succ(Succ(Succ(Succ(x28)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS01(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS01(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x27))=x125 & Succ(Succ(x26))=x126 & new_primModNatS01(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS01(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: (3) (new_primModNatS02(x128, x127)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x128 & Succ(Succ(Zero))=x127 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x132, x131, x130, x129)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x130)))=x132 & Succ(Succ(Succ(x129)))=x131 & (\/x133:new_primModNatS01(x132, x131, x130, x129)=Succ(Succ(Succ(Succ(x133)))) & Succ(Succ(x130))=x132 & Succ(Succ(x129))=x131 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x129))))), Pos(Succ(Succ(Succ(Succ(x130))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x129))))), Pos(new_primModNatS01(Succ(Succ(x130)), Succ(Succ(x129)), x130, x129)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x129)))))), Pos(Succ(Succ(Succ(Succ(Succ(x130)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x129)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x130))), Succ(Succ(Succ(x129))), Succ(x130), Succ(x129))))) (5) (new_primModNatS02(x136, x135)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x134)))=x136 & Succ(Succ(Zero))=x135 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x134)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x134))), Succ(Succ(Zero)), Succ(x134), Zero)))) (6) (Succ(Succ(x139))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x139 & Succ(Succ(Succ(x137)))=x138 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x128, x127)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x141), Succ(x140)), Succ(x140))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x141 & Succ(Succ(Zero))=x140 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_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(x132, x131, x130, x129)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x130)))=x132 & Succ(Succ(Succ(x129)))=x131 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x129)))))), Pos(Succ(Succ(Succ(Succ(Succ(x130)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x129)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x130))), Succ(Succ(Succ(x129))), Succ(x130), Succ(x129))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x136, x135)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x160), Succ(x159)), Succ(x159))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x134)))=x160 & Succ(Succ(Zero))=x159 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x134)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x134))), Succ(Succ(Zero)), Succ(x134), Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(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(x132, x131, x130, x129)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: (12) (new_primModNatS02(x147, x146)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x147 & Succ(Succ(Succ(Zero)))=x146 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x151, x150, x149, x148)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x149))))=x151 & Succ(Succ(Succ(Succ(x148))))=x150 & (\/x152:new_primModNatS01(x151, x150, x149, x148)=Succ(Succ(Succ(Succ(x152)))) & Succ(Succ(Succ(x149)))=x151 & Succ(Succ(Succ(x148)))=x150 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x148)))))), Pos(Succ(Succ(Succ(Succ(Succ(x149)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x148)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x149))), Succ(Succ(Succ(x148))), Succ(x149), Succ(x148))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x148))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x148))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x149)))), Succ(Succ(Succ(Succ(x148)))), Succ(Succ(x149)), Succ(Succ(x148)))))) (14) (new_primModNatS02(x155, x154)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x153))))=x155 & Succ(Succ(Succ(Zero)))=x154 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x153))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x153)))), Succ(Succ(Succ(Zero))), Succ(Succ(x153)), Succ(Zero))))) (15) (Succ(Succ(x158))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x158 & Succ(Succ(Succ(Succ(x156))))=x157 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(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'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x148))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x148))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x149)))), Succ(Succ(Succ(Succ(x148)))), Succ(Succ(x149)), Succ(Succ(x148)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x153))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x153)))), Succ(Succ(Succ(Zero))), Succ(Succ(x153)), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x134)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x134))), Succ(Succ(Zero)), Succ(x134), Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(new_primModNatS01(Succ(Succ(x33)), Succ(Succ(x32)), x33, x32))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=x165 & Pos(Zero)=x166 & new_primEqInt(x165, x166)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x165, x166)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Pos(Succ(x167)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) (4) (False=False & Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Neg(Succ(x169)) & Pos(Zero)=Pos(x168) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x30))=x170 & Succ(Succ(x31))=x171 & new_primModNatS01(x170, x171, x30, x31)=Succ(x169) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x170, x171, x30, x31)=Succ(x169) which results in the following new constraints: (6) (new_primModNatS02(x173, x172)=Succ(x169) & Succ(Succ(Zero))=x173 & Succ(Succ(Zero))=x172 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) (7) (new_primModNatS01(x177, x176, x175, x174)=Succ(x169) & Succ(Succ(Succ(x175)))=x177 & Succ(Succ(Succ(x174)))=x176 & (\/x178:new_primModNatS01(x177, x176, x175, x174)=Succ(x178) & Succ(Succ(x175))=x177 & Succ(Succ(x174))=x176 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x175))))), Pos(Succ(Succ(Succ(Succ(x174))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Succ(x174)), x175, x174)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x174))))), Neg(Succ(Succ(Succ(Succ(x175))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x175)))))), Pos(Succ(Succ(Succ(Succ(Succ(x174)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x175))), Succ(Succ(Succ(x174))), Succ(x175), Succ(x174))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x174)))))), Neg(Succ(Succ(Succ(Succ(Succ(x175)))))))) (8) (new_primModNatS02(x181, x180)=Succ(x169) & Succ(Succ(Succ(x179)))=x181 & Succ(Succ(Zero))=x180 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x179)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x179))), Succ(Succ(Zero)), Succ(x179), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x179)))))))) (9) (Succ(Succ(x184))=Succ(x169) & Succ(Succ(Zero))=x184 & Succ(Succ(Succ(x182)))=x183 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x173, x172)=Succ(x169) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x186), Succ(x185)), Succ(x185))=Succ(x169) & Succ(Succ(Zero))=x186 & Succ(Succ(Zero))=x185 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x177, x176, x175, x174)=Succ(x169) & Succ(Succ(Succ(x175)))=x177 & Succ(Succ(Succ(x174)))=x176 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x175)))))), Pos(Succ(Succ(Succ(Succ(Succ(x174)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x175))), Succ(Succ(Succ(x174))), Succ(x175), Succ(x174))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x174)))))), Neg(Succ(Succ(Succ(Succ(Succ(x175)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x181, x180)=Succ(x169) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x205), Succ(x204)), Succ(x204))=Succ(x169) & Succ(Succ(Succ(x179)))=x205 & Succ(Succ(Zero))=x204 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x179)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x179))), Succ(Succ(Zero)), Succ(x179), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x179)))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x177, x176, x175, x174)=Succ(x169) which results in the following new constraints: (15) (new_primModNatS02(x192, x191)=Succ(x169) & Succ(Succ(Succ(Zero)))=x192 & Succ(Succ(Succ(Zero)))=x191 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (16) (new_primModNatS01(x196, x195, x194, x193)=Succ(x169) & Succ(Succ(Succ(Succ(x194))))=x196 & Succ(Succ(Succ(Succ(x193))))=x195 & (\/x197:new_primModNatS01(x196, x195, x194, x193)=Succ(x197) & Succ(Succ(Succ(x194)))=x196 & Succ(Succ(Succ(x193)))=x195 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x194)))))), Pos(Succ(Succ(Succ(Succ(Succ(x193)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x194))), Succ(Succ(Succ(x193))), Succ(x194), Succ(x193))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x193)))))), Neg(Succ(Succ(Succ(Succ(Succ(x194)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x193))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x194)))), Succ(Succ(Succ(Succ(x193)))), Succ(Succ(x194)), Succ(Succ(x193)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x193))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))) (17) (new_primModNatS02(x200, x199)=Succ(x169) & Succ(Succ(Succ(Succ(x198))))=x200 & Succ(Succ(Succ(Zero)))=x199 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x198))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x198)))), Succ(Succ(Succ(Zero))), Succ(Succ(x198)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x198))))))))) (18) (Succ(Succ(x203))=Succ(x169) & Succ(Succ(Succ(Zero)))=x203 & Succ(Succ(Succ(Succ(x201))))=x202 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x193))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x194)))), Succ(Succ(Succ(Succ(x193)))), Succ(Succ(x194)), Succ(Succ(x193)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x193))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x198))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x198)))), Succ(Succ(Succ(Zero))), Succ(Succ(x198)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x198))))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x179)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x179))), Succ(Succ(Zero)), Succ(x179), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x179)))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x63))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x63))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x64)))), Succ(Succ(Succ(Succ(x63)))), Succ(Succ(x64)), Succ(Succ(x63)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x68))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x68)))), Succ(Succ(Succ(Zero))), Succ(Succ(x68)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x49)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x49))), Succ(Succ(Zero)), Succ(x49), Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x108))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x109)))), Succ(Succ(Succ(Succ(x108)))), Succ(Succ(x109)), Succ(Succ(x108)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x113))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x113)))), Succ(Succ(Succ(Zero))), Succ(Succ(x113)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x113))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x94)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x94))), Succ(Succ(Zero)), Succ(x94), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x94)))))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x148))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x148))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x149)))), Succ(Succ(Succ(Succ(x148)))), Succ(Succ(x149)), Succ(Succ(x148)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x153))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x153)))), Succ(Succ(Succ(Zero))), Succ(Succ(x153)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x134)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x134))), Succ(Succ(Zero)), Succ(x134), Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x193))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x194)))), Succ(Succ(Succ(Succ(x193)))), Succ(Succ(x194)), Succ(Succ(x193)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x193))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x198))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x198)))), Succ(Succ(Succ(Zero))), Succ(Succ(x198)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x198))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x179)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x179))), Succ(Succ(Zero)), Succ(x179), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x179)))))))) 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. ---------------------------------------- (683) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_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'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_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'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz7000) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (684) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot0(vuz172, vuz173, Succ(vuz1740), Succ(vuz1750)) -> new_quot0(vuz172, vuz173, vuz1740, vuz1750) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (685) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_quot0(vuz172, vuz173, Succ(vuz1740), Succ(vuz1750)) -> new_quot0(vuz172, vuz173, vuz1740, vuz1750) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (686) YES ---------------------------------------- (687) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz31000)), Succ(vuz56000)) -> new_primDivNatS0(vuz31000, vuz56000, vuz31000, vuz56000) new_primDivNatS0(vuz97, vuz98, Zero, Zero) -> new_primDivNatS00(vuz97, vuz98) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS2, Zero) new_primDivNatS(Succ(Succ(vuz31000)), Zero) -> new_primDivNatS(new_primMinusNatS1(vuz31000), Zero) new_primDivNatS00(vuz97, vuz98) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz31000) -> Succ(vuz31000) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (688) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (689) Complex Obligation (AND) ---------------------------------------- (690) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz31000)), Zero) -> new_primDivNatS(new_primMinusNatS1(vuz31000), Zero) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz31000) -> Succ(vuz31000) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (691) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primDivNatS(Succ(Succ(vuz31000)), Zero) -> new_primDivNatS(new_primMinusNatS1(vuz31000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz31000) -> Succ(vuz31000) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + 2*x_1 POL(Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS0(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS1(x_1)) = 2 + 2*x_1 POL(new_primMinusNatS2) = 2 ---------------------------------------- (692) Obligation: Q DP problem: P is empty. R is empty. The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (693) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (694) YES ---------------------------------------- (695) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz97, vuz98, Zero, Zero) -> new_primDivNatS00(vuz97, vuz98) new_primDivNatS00(vuz97, vuz98) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS(Succ(Succ(vuz31000)), Succ(vuz56000)) -> new_primDivNatS0(vuz31000, vuz56000, vuz31000, vuz56000) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz31000) -> Succ(vuz31000) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (696) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primDivNatS(Succ(Succ(vuz31000)), Succ(vuz56000)) -> new_primDivNatS0(vuz31000, vuz56000, vuz31000, vuz56000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (697) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz97, vuz98, Zero, Zero) -> new_primDivNatS00(vuz97, vuz98) new_primDivNatS00(vuz97, vuz98) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz31000) -> Succ(vuz31000) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (698) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (699) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz31000) -> Succ(vuz31000) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (700) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (701) YES ---------------------------------------- (702) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(vuz7, :(vuz80, vuz81), h) -> new_enforceWHNF(new_ps(vuz7, vuz80, h), vuz81, h) The TRS R consists of the following rules: new_absReal18(Pos(Zero), Neg(Succ(vuz7200))) -> new_absReal17 new_quot31(vuz290, Integer(Neg(Succ(vuz38000))), Integer(Pos(vuz6900)), vuz62, vuz300, vuz68) -> new_quot9(vuz290, vuz38000, vuz62, vuz300) new_primDivNatS1(Succ(Zero), Zero) -> Succ(new_primDivNatS1(new_primMinusNatS2, Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_quot40(vuz290, Neg(Zero), Integer(Pos(Succ(vuz102000)))) -> new_quot19(vuz290, new_primNegInt1) new_primPlusNat0(Zero, Zero) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMulInt(Pos(vuz1010), Neg(vuz3010)) -> Neg(new_primMulNat0(vuz1010, vuz3010)) new_primMulInt(Neg(vuz1010), Pos(vuz3010)) -> Neg(new_primMulNat0(vuz1010, vuz3010)) new_quot21(vuz290, False, vuz94, vuz160) -> new_quot20(vuz290, vuz94, vuz160, new_fromInt0, vuz94) new_primDivNatS1(Zero, vuz5600) -> Zero new_absReal18(Pos(Zero), Pos(Zero)) -> new_absReal19 new_quot23(vuz290, Neg(Zero), Integer(Neg(Succ(vuz108000))), vuz94, vuz101, vuz107) -> new_quot13(vuz290, vuz94, vuz101) new_absReal18(Pos(Succ(vuz3200)), Pos(vuz720)) -> new_absReal15(vuz3200, Succ(vuz3200), vuz720) new_primMinusNatS2 -> Zero new_quot40(vuz290, Pos(Succ(vuz30000)), Integer(Pos(vuz10200))) -> new_quot41(vuz290, vuz30000, Succ(vuz30000), vuz10200) new_quot18(vuz290, vuz30000) -> new_quot19(vuz290, new_primNegInt(vuz30000)) new_abs(vuz32) -> new_absReal18(vuz32, new_fromInt) new_quot51(vuz20, vuz21, vuz22, vuz23, ty_Integer) -> new_quot53(new_ps3(new_sr0(vuz20, vuz21), new_sr0(vuz22, vuz23)), new_ps3(new_sr0(vuz20, vuz21), new_sr0(vuz22, vuz23)), vuz23, vuz21) new_quot23(vuz290, Pos(Zero), Integer(Neg(Zero)), vuz94, vuz101, vuz107) -> new_quot26(vuz290, vuz94, vuz101) new_quot23(vuz290, Pos(Zero), Integer(Pos(Zero)), vuz94, vuz101, vuz107) -> new_quot26(vuz290, vuz94, vuz101) new_quot38(vuz290) -> new_quot19(vuz290, Neg(Zero)) new_sr0(Integer(vuz230), Integer(vuz210)) -> Integer(new_primMulInt(vuz230, vuz210)) new_quot41(vuz172, vuz173, Succ(vuz1740), Zero) -> new_quot42(vuz172, vuz173) new_primPlusInt(Neg(vuz110), Neg(vuz300)) -> Neg(new_primPlusNat0(vuz110, vuz300)) new_ps3(Integer(vuz120), Integer(vuz300)) -> Integer(new_primPlusInt(vuz120, vuz300)) new_primDivNatS02(vuz97, vuz98, Zero, Zero) -> new_primDivNatS01(vuz97, vuz98) new_quot24(vuz182, vuz183, Zero, Zero, vuz186, vuz187) -> new_quot47(vuz182, vuz183, vuz186, vuz187) new_quot31(vuz290, Integer(Neg(Succ(vuz38000))), Integer(Neg(vuz6900)), vuz62, vuz300, vuz68) -> new_quot7(vuz290, vuz38000, vuz6900, Succ(vuz38000), vuz62, vuz300) new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_quot22(vuz290, True, vuz300, vuz38) -> new_quot10(vuz290, vuz38, new_fromInt0, vuz300) new_gcd1(False, vuz33, vuz32) -> new_gcd0(vuz33, vuz32) new_quot40(vuz290, Pos(Zero), Integer(Neg(Zero))) -> new_quot43(vuz290) new_primDivNatS1(Succ(Zero), Succ(vuz56000)) -> Zero new_quot33(vuz290, vuz38000, vuz62, vuz300) -> new_quot39(vuz290, vuz38000, vuz62, vuz300) new_quot45(vuz177, vuz178, Succ(vuz1790), Succ(vuz1800)) -> new_quot45(vuz177, vuz178, vuz1790, vuz1800) new_quot31(vuz290, Integer(Neg(Zero)), Integer(Neg(Succ(vuz69000))), vuz62, vuz300, vuz68) -> new_quot36(vuz290, vuz62, vuz300) new_primDivNatS02(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS01(vuz97, vuz98) new_absReal18(Neg(Succ(vuz3200)), Pos(vuz720)) -> new_absReal13(vuz3200) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_quot24(vuz182, vuz183, Succ(vuz1840), Zero, vuz186, vuz187) -> new_quot25(vuz182, vuz183, vuz186, vuz187) new_gcd0Gcd'10(False, vuz70, vuz71) -> new_gcd0Gcd'00(vuz70, new_rem(vuz71, vuz70)) new_quot23(vuz290, Pos(Succ(vuz30000)), Integer(Neg(vuz10800)), vuz94, vuz101, vuz107) -> new_quot25(vuz290, vuz30000, vuz94, vuz101) new_primQuotInt1(vuz310, Pos(Succ(vuz5600))) -> Pos(new_primDivNatS1(vuz310, vuz5600)) new_quot15(vuz290, True, vuz300, vuz94) -> new_quot40(vuz290, vuz300, new_fromInt0) new_primQuotInt(Pos(vuz2900), Neg(Succ(vuz13400))) -> Neg(new_primDivNatS1(vuz2900, vuz13400)) new_primQuotInt(Neg(vuz2900), Pos(Succ(vuz13400))) -> Neg(new_primDivNatS1(vuz2900, vuz13400)) new_gcd0Gcd'11(True, vuz33, vuz32) -> new_abs(vuz33) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primPlusInt(Pos(vuz110), Neg(vuz300)) -> new_primMinusNat0(vuz110, vuz300) new_primPlusInt(Neg(vuz110), Pos(vuz300)) -> new_primMinusNat0(vuz300, vuz110) new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_primDivNatS02(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS02(vuz97, vuz98, vuz990, vuz1000) new_primQuotInt0(vuz310, Neg(Zero)) -> new_error new_quot7(vuz146, vuz147, Zero, Zero, vuz150, vuz151) -> new_quot8(vuz146, vuz147, vuz150, vuz151) new_ps4(Float(vuz130, vuz131), Float(vuz300, vuz301)) -> Float(new_ps2(new_sr(vuz130, vuz301), new_sr(vuz300, vuz131)), new_sr(vuz131, vuz301)) new_quot23(vuz290, Neg(Zero), Integer(Pos(Succ(vuz108000))), vuz94, vuz101, vuz107) -> new_quot20(vuz290, new_primNegInt1, vuz94, vuz101, new_primNegInt1) new_rem(vuz71, vuz70) -> new_primRemInt(vuz71, vuz70) new_quot11(vuz290, False, vuz300, vuz380) -> new_quot16(vuz290, vuz300, Integer(vuz380)) new_sr(vuz101, vuz301) -> new_primMulInt(vuz101, vuz301) new_quot54(Neg(vuz310), vuz33, vuz32) -> new_primQuotInt0(vuz310, new_gcd(vuz33, vuz32)) new_quot40(vuz290, Pos(Zero), Integer(Neg(Succ(vuz102000)))) -> new_quot44(vuz290) new_primNegInt1 -> Pos(Zero) new_absReal16(vuz3200) -> new_absReal14(vuz3200) new_primMulNat0(Zero, Zero) -> Zero new_absReal18(Neg(Zero), Pos(Zero)) -> new_absReal110 new_quot41(vuz172, vuz173, Zero, Zero) -> new_quot48(vuz172, vuz173) new_quot7(vuz146, vuz147, Succ(vuz1480), Succ(vuz1490), vuz150, vuz151) -> new_quot7(vuz146, vuz147, vuz1480, vuz1490, vuz150, vuz151) new_gcd0(vuz33, vuz32) -> new_gcd0Gcd'11(new_esEs(new_abs(vuz32), new_fromInt), vuz33, vuz32) new_quot19(vuz290, vuz134) -> Integer(new_primQuotInt(vuz290, vuz134)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_quot31(vuz290, Integer(Pos(Succ(vuz38000))), Integer(Neg(vuz6900)), vuz62, vuz300, vuz68) -> new_quot33(vuz290, vuz38000, vuz62, vuz300) new_primMulNat0(Succ(vuz10100), Succ(vuz30100)) -> new_primPlusNat0(new_primMulNat0(vuz10100, Succ(vuz30100)), Succ(vuz30100)) new_primNegInt2(vuz104) -> Neg(Succ(vuz104)) new_quot29(vuz189, vuz190, Zero, Zero, vuz193, vuz194) -> new_quot30(vuz189, vuz190, vuz193, vuz194) new_esEs1(vuz91, vuz301, ty_Int) -> new_esEs(new_sr(vuz91, vuz301), new_fromInt) new_gcd0Gcd'11(False, vuz33, vuz32) -> new_gcd0Gcd'00(new_abs(vuz33), new_abs(vuz32)) new_quot50(vuz290, vuz30, vuz38) -> new_quot49(vuz290, vuz30, new_fromInt0, vuz38) new_quot43(vuz290) -> new_quot44(vuz290) new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_quot31(vuz290, Integer(Pos(Succ(vuz38000))), Integer(Pos(vuz6900)), vuz62, vuz300, vuz68) -> new_quot32(vuz290, vuz38000, Succ(vuz38000), vuz6900, vuz62, vuz300) new_absReal18(Pos(Succ(vuz3200)), Neg(vuz720)) -> new_absReal16(vuz3200) new_primQuotInt0(vuz310, Pos(Succ(vuz5900))) -> Neg(new_primDivNatS1(vuz310, vuz5900)) new_quot40(vuz290, Pos(Zero), Integer(Pos(Succ(vuz102000)))) -> new_quot19(vuz290, new_primNegInt0) new_quot36(vuz290, vuz62, vuz300) -> new_quot15(vuz290, new_esEs0(Neg(Zero), vuz62), vuz300, Neg(Zero)) new_absReal15(vuz104, Zero, Succ(vuz1060)) -> new_primNegInt2(vuz104) new_absReal18(Pos(Zero), Neg(Zero)) -> new_absReal19 new_quot29(vuz189, vuz190, Succ(vuz1910), Succ(vuz1920), vuz193, vuz194) -> new_quot29(vuz189, vuz190, vuz1910, vuz1920, vuz193, vuz194) new_quot39(vuz290, vuz38000, vuz62, vuz300) -> new_quot15(vuz290, new_esEs0(Pos(Succ(vuz38000)), vuz62), vuz300, Pos(Succ(vuz38000))) new_absReal11(vuz112, Succ(vuz1130), Succ(vuz1140)) -> new_absReal11(vuz112, vuz1130, vuz1140) new_absReal18(Neg(Succ(vuz3200)), Neg(vuz720)) -> new_absReal11(vuz3200, vuz720, Succ(vuz3200)) new_primMinusNat0(Succ(vuz1100), Zero) -> Pos(Succ(vuz1100)) new_ps(vuz7, vuz80, ty_Int) -> new_ps2(vuz7, vuz80) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primPlusInt(Pos(vuz110), Pos(vuz300)) -> Pos(new_primPlusNat0(vuz110, vuz300)) new_quot37(vuz177, vuz178) -> new_quot19(vuz177, Neg(Succ(vuz178))) new_quot41(vuz172, vuz173, Zero, Succ(vuz1750)) -> new_quot19(vuz172, new_primNegInt2(vuz173)) new_quot44(vuz290) -> new_quot19(vuz290, Pos(Zero)) new_quot23(vuz290, Neg(Succ(vuz30000)), Integer(Pos(vuz10800)), vuz94, vuz101, vuz107) -> new_quot28(vuz290, vuz30000, vuz94, vuz101) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_quot14(vuz290, vuz62, vuz300) -> new_quot15(vuz290, new_esEs0(Pos(Zero), vuz62), vuz300, Pos(Zero)) new_quot40(vuz290, Neg(Zero), Integer(Neg(Succ(vuz102000)))) -> new_quot38(vuz290) new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_quot32(vuz136, vuz137, Succ(vuz1380), Succ(vuz1390), vuz140, vuz141) -> new_quot32(vuz136, vuz137, vuz1380, vuz1390, vuz140, vuz141) new_quot24(vuz182, vuz183, Succ(vuz1840), Succ(vuz1850), vuz186, vuz187) -> new_quot24(vuz182, vuz183, vuz1840, vuz1850, vuz186, vuz187) new_quot31(vuz290, Integer(Pos(Zero)), Integer(Pos(Zero)), vuz62, vuz300, vuz68) -> new_quot34(vuz290, vuz62, vuz300) new_esEs1(vuz91, vuz301, ty_Integer) -> new_esEs2(vuz91, vuz301, new_fromInt0) new_quot26(vuz290, vuz94, vuz101) -> new_quot27(vuz290, vuz94, vuz101) new_quot20(vuz290, vuz153, vuz94, vuz101, vuz152) -> new_quot21(vuz290, new_esEs0(new_primRemInt(vuz153, vuz94), vuz101), vuz94, new_primRemInt(vuz153, vuz94)) new_absReal15(vuz104, Succ(vuz1050), Succ(vuz1060)) -> new_absReal15(vuz104, vuz1050, vuz1060) new_absReal15(vuz104, Succ(vuz1050), Zero) -> new_absReal16(vuz104) new_absReal110 -> new_absReal111 new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_gcd2(False, vuz33, vuz32) -> new_gcd0(vuz33, vuz32) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_ps(vuz7, vuz80, ty_Integer) -> new_ps3(vuz7, vuz80) new_primQuotInt(Pos(vuz2900), Neg(Zero)) -> new_error new_primQuotInt(Neg(vuz2900), Pos(Zero)) -> new_error new_quot8(vuz146, vuz147, vuz150, vuz151) -> new_quot15(vuz146, new_esEs0(Neg(Succ(vuz147)), vuz150), vuz151, Neg(Succ(vuz147))) new_absReal18(Neg(Zero), Neg(Zero)) -> new_absReal110 new_absReal18(Neg(Zero), Pos(Succ(vuz7200))) -> new_primNegInt1 new_quot45(vuz177, vuz178, Succ(vuz1790), Zero) -> new_quot37(vuz177, vuz178) new_absReal111 -> Neg(Zero) new_primQuotInt1(vuz310, Neg(Succ(vuz5600))) -> Neg(new_primDivNatS1(vuz310, vuz5600)) new_quot23(vuz290, Pos(Zero), Integer(Pos(Succ(vuz108000))), vuz94, vuz101, vuz107) -> new_quot20(vuz290, new_primNegInt0, vuz94, vuz101, new_primNegInt0) new_ps1(Double(vuz100, vuz101), Double(vuz300, vuz301)) -> Double(new_ps2(new_sr(vuz100, vuz301), new_sr(vuz300, vuz101)), new_sr(vuz101, vuz301)) new_absReal19 -> new_absReal17 new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_ps0(:%(vuz90, vuz91), :%(vuz300, vuz301), bb) -> new_reduce2Reduce1(vuz90, vuz301, vuz300, vuz91, new_esEs1(vuz91, vuz301, bb), bb) new_quot35(vuz290, vuz62, vuz300) -> new_quot36(vuz290, vuz62, vuz300) new_primQuotInt(Neg(vuz2900), Neg(Succ(vuz13400))) -> Pos(new_primDivNatS1(vuz2900, vuz13400)) new_quot47(vuz290, vuz30000, vuz94, vuz101) -> new_quot20(vuz290, Pos(Succ(vuz30000)), vuz94, vuz101, Pos(Succ(vuz30000))) new_primQuotInt(Neg(vuz2900), Neg(Zero)) -> new_error new_absReal18(Neg(Zero), Neg(Succ(vuz7200))) -> new_absReal111 new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_quot11(vuz290, True, vuz300, vuz380) -> error([]) new_quot23(vuz290, Neg(Zero), Integer(Neg(Zero)), vuz94, vuz101, vuz107) -> new_quot12(vuz290, vuz94, vuz101) new_primMinusNat0(Succ(vuz1100), Succ(vuz3000)) -> new_primMinusNat0(vuz1100, vuz3000) new_ps(vuz7, vuz80, ty_Double) -> new_ps1(vuz7, vuz80) new_esEs0(vuz28, Integer(vuz270)) -> new_primEqInt(vuz28, vuz270) new_gcd1(True, vuz33, vuz32) -> new_error new_absReal12(vuz112) -> Neg(Succ(vuz112)) new_quot49(vuz290, Integer(vuz300), Integer(vuz390), vuz38) -> new_quot22(vuz290, new_primEqInt(vuz300, vuz390), vuz300, vuz38) new_ps(vuz7, vuz80, ty_Float) -> new_ps4(vuz7, vuz80) new_quot32(vuz136, vuz137, Succ(vuz1380), Zero, vuz140, vuz141) -> new_quot33(vuz136, vuz137, vuz140, vuz141) new_quot48(vuz290, vuz30000) -> new_quot19(vuz290, Pos(Succ(vuz30000))) new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_quot7(vuz146, vuz147, Succ(vuz1480), Zero, vuz150, vuz151) -> new_quot8(vuz146, vuz147, vuz150, vuz151) new_gcd0Gcd'10(True, vuz70, vuz71) -> vuz70 new_primPlusNat0(Succ(vuz1100), Succ(vuz3000)) -> Succ(Succ(new_primPlusNat0(vuz1100, vuz3000))) new_absReal11(vuz112, Succ(vuz1130), Zero) -> new_absReal12(vuz112) new_quot31(vuz290, Integer(Pos(Zero)), Integer(Neg(Succ(vuz69000))), vuz62, vuz300, vuz68) -> new_quot14(vuz290, vuz62, vuz300) new_quot32(vuz136, vuz137, Zero, Zero, vuz140, vuz141) -> new_quot39(vuz136, vuz137, vuz140, vuz141) new_quot45(vuz177, vuz178, Zero, Zero) -> new_quot37(vuz177, vuz178) new_quot17(vuz290, vuz38, vuz62, vuz300) -> new_quot31(vuz290, vuz38, new_fromInt0, vuz62, vuz300, new_fromInt0) new_quot29(vuz189, vuz190, Zero, Succ(vuz1920), vuz193, vuz194) -> new_quot28(vuz189, vuz190, vuz193, vuz194) new_quot45(vuz177, vuz178, Zero, Succ(vuz1800)) -> new_quot18(vuz177, vuz178) new_quot27(vuz290, vuz94, vuz101) -> new_quot20(vuz290, Pos(Zero), vuz94, vuz101, Pos(Zero)) new_absReal18(Pos(Zero), Pos(Succ(vuz7200))) -> new_primNegInt0 new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_quot41(vuz172, vuz173, Succ(vuz1740), Succ(vuz1750)) -> new_quot41(vuz172, vuz173, vuz1740, vuz1750) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_quot54(Pos(vuz310), vuz33, vuz32) -> new_primQuotInt1(vuz310, new_gcd(vuz33, vuz32)) new_primDivNatS02(vuz97, vuz98, Zero, Succ(vuz1000)) -> Zero new_primMulInt(Pos(vuz1010), Pos(vuz3010)) -> Pos(new_primMulNat0(vuz1010, vuz3010)) new_quot40(vuz290, Neg(Succ(vuz30000)), Integer(Neg(vuz10200))) -> new_quot45(vuz290, vuz30000, vuz10200, Succ(vuz30000)) new_quot29(vuz189, vuz190, Succ(vuz1910), Zero, vuz193, vuz194) -> new_quot30(vuz189, vuz190, vuz193, vuz194) new_esEs(vuz26, vuz25) -> new_primEqInt(vuz26, vuz25) new_quot12(vuz290, vuz94, vuz101) -> new_quot13(vuz290, vuz94, vuz101) new_absReal11(vuz112, Zero, Succ(vuz1140)) -> new_absReal13(vuz112) new_quot46(vuz290) -> new_quot38(vuz290) new_absReal11(vuz112, Zero, Zero) -> new_absReal12(vuz112) new_quot15(vuz290, False, vuz300, vuz94) -> new_quot55(vuz290, vuz300, vuz94, new_fromInt0) new_quot31(vuz290, Integer(Neg(Zero)), Integer(Neg(Zero)), vuz62, vuz300, vuz68) -> new_quot35(vuz290, vuz62, vuz300) new_primDivNatS1(Succ(Succ(vuz31000)), Zero) -> Succ(new_primDivNatS1(new_primMinusNatS1(vuz31000), Zero)) new_quot40(vuz290, Neg(Zero), Integer(Pos(Zero))) -> new_quot46(vuz290) new_quot53(Integer(vuz290), vuz30, vuz23, vuz21) -> new_quot50(vuz290, vuz30, new_sr0(vuz23, vuz21)) new_primMulNat0(Succ(vuz10100), Zero) -> Zero new_primMulNat0(Zero, Succ(vuz30100)) -> Zero new_quot23(vuz290, Neg(Zero), Integer(Pos(Zero)), vuz94, vuz101, vuz107) -> new_quot12(vuz290, vuz94, vuz101) new_primQuotInt(Pos(vuz2900), Pos(Zero)) -> new_error new_quot55(vuz290, vuz300, vuz94, vuz101) -> new_quot23(vuz290, vuz300, new_fromInt0, vuz94, vuz101, new_fromInt0) new_quot23(vuz290, Pos(Zero), Integer(Neg(Succ(vuz108000))), vuz94, vuz101, vuz107) -> new_quot27(vuz290, vuz94, vuz101) new_quot23(vuz290, Neg(Succ(vuz30000)), Integer(Neg(vuz10800)), vuz94, vuz101, vuz107) -> new_quot29(vuz290, vuz30000, vuz10800, Succ(vuz30000), vuz94, vuz101) new_absReal17 -> Pos(Zero) new_quot40(vuz290, Pos(Succ(vuz30000)), Integer(Neg(vuz10200))) -> new_quot42(vuz290, vuz30000) new_quot31(vuz290, Integer(Pos(Zero)), Integer(Neg(Zero)), vuz62, vuz300, vuz68) -> new_quot34(vuz290, vuz62, vuz300) new_quot28(vuz290, vuz30000, vuz94, vuz101) -> new_quot20(vuz290, new_primNegInt(vuz30000), vuz94, vuz101, new_primNegInt(vuz30000)) new_absReal13(vuz3200) -> new_primNegInt(vuz3200) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_quot40(vuz290, Pos(Zero), Integer(Pos(Zero))) -> new_quot43(vuz290) new_primPlusNat0(Succ(vuz1100), Zero) -> Succ(vuz1100) new_primPlusNat0(Zero, Succ(vuz3000)) -> Succ(vuz3000) new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_quot31(vuz290, Integer(Neg(Zero)), Integer(Pos(Zero)), vuz62, vuz300, vuz68) -> new_quot35(vuz290, vuz62, vuz300) new_primNegInt0 -> Neg(Zero) new_gcd(vuz33, vuz32) -> new_gcd2(new_esEs(vuz33, new_fromInt), vuz33, vuz32) new_quot42(vuz290, vuz30000) -> new_quot48(vuz290, vuz30000) new_quot52(vuz23, vuz21, vuz20, vuz22, ty_Int) -> new_quot54(new_sr(vuz23, vuz21), new_ps2(new_sr(vuz20, vuz21), new_sr(vuz22, vuz23)), new_sr(vuz23, vuz21)) new_quot51(vuz20, vuz21, vuz22, vuz23, ty_Int) -> new_quot54(new_ps2(new_sr(vuz20, vuz21), new_sr(vuz22, vuz23)), new_ps2(new_sr(vuz20, vuz21), new_sr(vuz22, vuz23)), new_sr(vuz23, vuz21)) new_absReal15(vuz104, Zero, Zero) -> new_absReal14(vuz104) new_primQuotInt1(vuz310, Pos(Zero)) -> new_error new_primMinusNatS1(vuz31000) -> Succ(vuz31000) new_ps2(vuz11, vuz30) -> new_primPlusInt(vuz11, vuz30) new_primMinusNat0(Zero, Succ(vuz3000)) -> Neg(Succ(vuz3000)) new_quot13(vuz290, vuz94, vuz101) -> new_quot20(vuz290, Neg(Zero), vuz94, vuz101, Neg(Zero)) new_fromInt0 -> Integer(Pos(Zero)) new_primQuotInt(Pos(vuz2900), Pos(Succ(vuz13400))) -> Pos(new_primDivNatS1(vuz2900, vuz13400)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_quot10(vuz290, Integer(vuz380), Integer(vuz530), vuz300) -> new_quot11(vuz290, new_primEqInt(vuz380, vuz530), vuz300, vuz380) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primDivNatS01(vuz97, vuz98) -> Succ(new_primDivNatS1(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98))) new_reduce2Reduce1(vuz20, vuz21, vuz22, vuz23, False, bc) -> :%(new_quot51(vuz20, vuz21, vuz22, vuz23, bc), new_quot52(vuz23, vuz21, vuz20, vuz22, bc)) new_reduce2Reduce1(vuz20, vuz21, vuz22, vuz23, True, bc) -> error([]) new_primDivNatS1(Succ(Succ(vuz31000)), Succ(vuz56000)) -> new_primDivNatS02(vuz31000, vuz56000, vuz31000, vuz56000) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_quot25(vuz290, vuz30000, vuz94, vuz101) -> new_quot47(vuz290, vuz30000, vuz94, vuz101) new_esEs2(Integer(vuz910), Integer(vuz3010), vuz27) -> new_esEs0(new_primMulInt(vuz910, vuz3010), vuz27) new_primEqNat0(Zero, Zero) -> True new_quot31(vuz290, Integer(Pos(Zero)), Integer(Pos(Succ(vuz69000))), vuz62, vuz300, vuz68) -> new_quot15(vuz290, new_esEs0(new_primNegInt0, vuz62), vuz300, new_primNegInt0) new_quot31(vuz290, Integer(Neg(Zero)), Integer(Pos(Succ(vuz69000))), vuz62, vuz300, vuz68) -> new_quot15(vuz290, new_esEs0(new_primNegInt1, vuz62), vuz300, new_primNegInt1) new_quot52(vuz23, vuz21, vuz20, vuz22, ty_Integer) -> new_quot53(new_sr0(vuz23, vuz21), new_ps3(new_sr0(vuz20, vuz21), new_sr0(vuz22, vuz23)), vuz23, vuz21) new_quot32(vuz136, vuz137, Zero, Succ(vuz1390), vuz140, vuz141) -> new_quot15(vuz136, new_esEs0(new_primNegInt2(vuz137), vuz140), vuz141, new_primNegInt2(vuz137)) new_quot40(vuz290, Neg(Succ(vuz30000)), Integer(Pos(vuz10200))) -> new_quot18(vuz290, vuz30000) new_absReal14(vuz3200) -> Pos(Succ(vuz3200)) new_primMulInt(Neg(vuz1010), Neg(vuz3010)) -> Pos(new_primMulNat0(vuz1010, vuz3010)) new_primQuotInt0(vuz310, Neg(Succ(vuz5900))) -> Pos(new_primDivNatS1(vuz310, vuz5900)) new_fromInt -> Pos(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_quot21(vuz290, True, vuz94, vuz160) -> new_quot19(vuz290, vuz94) new_quot24(vuz182, vuz183, Zero, Succ(vuz1850), vuz186, vuz187) -> new_quot20(vuz182, new_primNegInt2(vuz183), vuz186, vuz187, new_primNegInt2(vuz183)) new_gcd0Gcd'00(vuz71, vuz70) -> new_gcd0Gcd'10(new_esEs(new_rem(vuz71, vuz70), new_fromInt), vuz70, vuz71) new_error -> error([]) new_gcd2(True, vuz33, vuz32) -> new_gcd1(new_esEs(vuz32, new_fromInt), vuz33, vuz32) new_quot30(vuz189, vuz190, vuz193, vuz194) -> new_quot20(vuz189, Neg(Succ(vuz190)), vuz193, vuz194, Neg(Succ(vuz190))) new_quot16(vuz290, vuz300, vuz38) -> new_quot17(vuz290, vuz38, new_fromInt0, vuz300) new_primQuotInt1(vuz310, Neg(Zero)) -> new_error new_quot22(vuz290, False, vuz300, vuz38) -> new_quot16(vuz290, vuz300, vuz38) new_ps(vuz7, vuz80, app(ty_Ratio, ba)) -> new_ps0(vuz7, vuz80, ba) new_quot40(vuz290, Neg(Zero), Integer(Neg(Zero))) -> new_quot46(vuz290) new_primQuotInt0(vuz310, Pos(Zero)) -> new_error new_quot34(vuz290, vuz62, vuz300) -> new_quot14(vuz290, vuz62, vuz300) new_primNegInt(vuz3200) -> Pos(Succ(vuz3200)) new_quot23(vuz290, Pos(Succ(vuz30000)), Integer(Pos(vuz10800)), vuz94, vuz101, vuz107) -> new_quot24(vuz290, vuz30000, Succ(vuz30000), vuz10800, vuz94, vuz101) new_quot9(vuz290, vuz38000, vuz62, vuz300) -> new_quot15(vuz290, new_esEs0(new_primNegInt(vuz38000), vuz62), vuz300, new_primNegInt(vuz38000)) new_quot7(vuz146, vuz147, Zero, Succ(vuz1490), vuz150, vuz151) -> new_quot9(vuz146, vuz147, vuz150, vuz151) The set Q consists of the following terms: new_quot30(x0, x1, x2, x3) new_quot23(x0, Neg(Zero), Integer(Pos(Succ(x1))), x2, x3, x4) new_quot45(x0, x1, Zero, Succ(x2)) new_quot24(x0, x1, Zero, Zero, x2, x3) new_quot55(x0, x1, x2, x3) new_esEs1(x0, x1, ty_Integer) new_absReal12(x0) new_absReal18(Neg(Zero), Neg(Succ(x0))) new_esEs2(Integer(x0), Integer(x1), x2) new_primMulNat0(Succ(x0), Zero) new_quot45(x0, x1, Zero, Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_quot23(x0, Neg(Zero), Integer(Neg(Succ(x1))), x2, x3, x4) new_quot10(x0, Integer(x1), Integer(x2), x3) new_quot21(x0, True, x1, x2) new_ps(x0, x1, ty_Int) new_primDivNatS1(Succ(Zero), Zero) new_quot23(x0, Pos(Zero), Integer(Pos(Succ(x1))), x2, x3, x4) new_absReal19 new_absReal18(Pos(Zero), Pos(Succ(x0))) new_primMulNat0(Zero, Zero) new_quot8(x0, x1, x2, x3) new_primModNatS1(Zero, x0) new_fromInt new_quot37(x0, x1) new_quot50(x0, x1, x2) new_quot15(x0, False, x1, x2) new_primNegInt0 new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_quot23(x0, Pos(Zero), Integer(Neg(Succ(x1))), x2, x3, x4) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_gcd(x0, x1) new_primDivNatS1(Succ(Succ(x0)), Succ(x1)) new_primNegInt1 new_quot33(x0, x1, x2, x3) new_primPlusInt(Pos(x0), Pos(x1)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primMinusNat0(Zero, Zero) new_primPlusNat0(Zero, Succ(x0)) new_gcd2(True, x0, x1) new_quot40(x0, Pos(Zero), Integer(Pos(Succ(x1)))) new_quot52(x0, x1, x2, x3, ty_Int) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_quot48(x0, x1) new_primMinusNat0(Zero, Succ(x0)) new_ps(x0, x1, ty_Float) new_error new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_quot24(x0, x1, Succ(x2), Succ(x3), x4, x5) new_primQuotInt0(x0, Pos(Succ(x1))) new_primDivNatS1(Zero, x0) new_quot40(x0, Neg(Zero), Integer(Neg(Succ(x1)))) new_primPlusInt(Neg(x0), Neg(x1)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_gcd0Gcd'10(False, x0, x1) new_quot22(x0, False, x1, x2) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_quot29(x0, x1, Succ(x2), Succ(x3), x4, x5) new_quot11(x0, False, x1, x2) new_primPlusNat0(Zero, Zero) new_primQuotInt(Pos(x0), Pos(Succ(x1))) new_absReal18(Neg(Succ(x0)), Pos(x1)) new_absReal18(Pos(Succ(x0)), Neg(x1)) new_quot41(x0, x1, Zero, Zero) new_absReal18(Pos(Zero), Pos(Zero)) new_absReal18(Neg(Succ(x0)), Neg(x1)) new_quot16(x0, x1, x2) new_quot40(x0, Neg(Zero), Integer(Neg(Zero))) new_quot23(x0, Pos(Zero), Integer(Neg(Zero)), x1, x2, x3) new_quot31(x0, Integer(Pos(Succ(x1))), Integer(Pos(x2)), x3, x4, x5) new_quot23(x0, Pos(Zero), Integer(Pos(Zero)), x1, x2, x3) new_quot42(x0, x1) new_quot27(x0, x1, x2) new_abs(x0) new_quot31(x0, Integer(Neg(Zero)), Integer(Neg(Zero)), x1, x2, x3) new_primDivNatS1(Succ(Succ(x0)), Zero) new_quot11(x0, True, x1, x2) new_quot18(x0, x1) new_absReal15(x0, Succ(x1), Succ(x2)) new_quot7(x0, x1, Zero, Succ(x2), x3, x4) new_rem(x0, x1) new_primMinusNat0(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_quot34(x0, x1, x2) new_quot49(x0, Integer(x1), Integer(x2), x3) new_quot32(x0, x1, Succ(x2), Zero, x3, x4) new_primQuotInt(Neg(x0), Neg(Zero)) new_quot28(x0, x1, x2, x3) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primMinusNatS1(x0) new_quot20(x0, x1, x2, x3, x4) new_quot44(x0) new_primQuotInt(Pos(x0), Neg(Zero)) new_primQuotInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_quot41(x0, x1, Succ(x2), Zero) new_absReal18(Neg(Zero), Pos(Zero)) new_absReal18(Pos(Zero), Neg(Zero)) new_primQuotInt1(x0, Pos(Succ(x1))) new_ps2(x0, x1) new_quot36(x0, x1, x2) new_primMulInt(Pos(x0), Pos(x1)) new_quot25(x0, x1, x2, x3) new_quot17(x0, x1, x2, x3) new_primMinusNatS2 new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_ps(x0, x1, ty_Double) new_absReal17 new_quot51(x0, x1, x2, x3, ty_Int) new_quot40(x0, Pos(Zero), Integer(Neg(Succ(x1)))) new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primPlusNat0(Succ(x0), Zero) new_quot9(x0, x1, x2, x3) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_quot32(x0, x1, Zero, Zero, x2, x3) new_quot15(x0, True, x1, x2) new_primQuotInt0(x0, Neg(Zero)) new_gcd2(False, x0, x1) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primMinusNat0(Succ(x0), Succ(x1)) new_quot40(x0, Pos(Succ(x1)), Integer(Neg(x2))) new_quot53(Integer(x0), x1, x2, x3) new_ps4(Float(x0, x1), Float(x2, x3)) new_sr(x0, x1) new_absReal18(Pos(Zero), Neg(Succ(x0))) new_absReal18(Neg(Zero), Pos(Succ(x0))) new_gcd1(True, x0, x1) new_quot40(x0, Neg(Zero), Integer(Pos(Succ(x1)))) new_primQuotInt1(x0, Pos(Zero)) new_quot29(x0, x1, Zero, Succ(x2), x3, x4) new_quot7(x0, x1, Succ(x2), Succ(x3), x4, x5) new_quot24(x0, x1, Zero, Succ(x2), x3, x4) new_absReal11(x0, Succ(x1), Succ(x2)) new_quot23(x0, Neg(Succ(x1)), Integer(Neg(x2)), x3, x4, x5) new_quot52(x0, x1, x2, x3, ty_Integer) new_quot40(x0, Neg(Succ(x1)), Integer(Pos(x2))) new_quot23(x0, Neg(Succ(x1)), Integer(Pos(x2)), x3, x4, x5) new_fromInt0 new_primModNatS1(Succ(Zero), Succ(x0)) new_quot23(x0, Pos(Succ(x1)), Integer(Pos(x2)), x3, x4, x5) new_quot24(x0, x1, Succ(x2), Zero, x3, x4) new_absReal15(x0, Zero, Zero) new_quot40(x0, Pos(Succ(x1)), Integer(Pos(x2))) new_quot40(x0, Neg(Succ(x1)), Integer(Neg(x2))) new_absReal11(x0, Succ(x1), Zero) new_primNegInt(x0) new_primDivNatS1(Succ(Zero), Succ(x0)) new_quot19(x0, x1) new_ps3(Integer(x0), Integer(x1)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_quot29(x0, x1, Succ(x2), Zero, x3, x4) new_absReal110 new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_quot13(x0, x1, x2) new_absReal11(x0, Zero, Succ(x1)) new_gcd1(False, x0, x1) new_primModNatS1(Succ(Zero), Zero) new_quot45(x0, x1, Succ(x2), Zero) new_ps(x0, x1, ty_Integer) new_quot54(Pos(x0), x1, x2) new_quot41(x0, x1, Zero, Succ(x2)) new_primQuotInt1(x0, Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primDivNatS01(x0, x1) new_esEs1(x0, x1, ty_Int) new_ps0(:%(x0, x1), :%(x2, x3), x4) new_sr0(Integer(x0), Integer(x1)) new_primEqNat0(Zero, Succ(x0)) new_primMulInt(Neg(x0), Neg(x1)) new_quot45(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primQuotInt(Pos(x0), Neg(Succ(x1))) new_primQuotInt(Neg(x0), Pos(Succ(x1))) new_absReal15(x0, Zero, Succ(x1)) new_quot41(x0, x1, Succ(x2), Succ(x3)) new_gcd0Gcd'11(True, x0, x1) new_quot7(x0, x1, Zero, Zero, x2, x3) new_quot47(x0, x1, x2, x3) new_quot23(x0, Neg(Zero), Integer(Neg(Zero)), x1, x2, x3) new_esEs0(x0, Integer(x1)) new_quot40(x0, Neg(Zero), Integer(Pos(Zero))) new_quot31(x0, Integer(Pos(Zero)), Integer(Pos(Zero)), x1, x2, x3) new_primMulInt(Pos(x0), Neg(x1)) new_primMulInt(Neg(x0), Pos(x1)) new_quot14(x0, x1, x2) new_primEqNat0(Zero, Zero) new_quot31(x0, Integer(Pos(Zero)), Integer(Pos(Succ(x1))), x2, x3, x4) new_primQuotInt1(x0, Neg(Succ(x1))) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_quot23(x0, Neg(Zero), Integer(Pos(Zero)), x1, x2, x3) new_quot31(x0, Integer(Pos(Zero)), Integer(Neg(Zero)), x1, x2, x3) new_quot31(x0, Integer(Neg(Zero)), Integer(Pos(Zero)), x1, x2, x3) new_gcd0Gcd'11(False, x0, x1) new_quot31(x0, Integer(Pos(Zero)), Integer(Neg(Succ(x1))), x2, x3, x4) new_quot31(x0, Integer(Neg(Zero)), Integer(Pos(Succ(x1))), x2, x3, x4) new_quot40(x0, Pos(Zero), Integer(Pos(Zero))) new_primQuotInt0(x0, Neg(Succ(x1))) new_quot40(x0, Pos(Zero), Integer(Neg(Zero))) new_primQuotInt(Pos(x0), Pos(Zero)) new_absReal14(x0) new_quot31(x0, Integer(Neg(Zero)), Integer(Neg(Succ(x1))), x2, x3, x4) new_quot39(x0, x1, x2, x3) new_primQuotInt(Neg(x0), Neg(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_quot31(x0, Integer(Neg(Succ(x1))), Integer(Neg(x2)), x3, x4, x5) new_absReal11(x0, Zero, Zero) new_quot32(x0, x1, Zero, Succ(x2), x3, x4) new_absReal13(x0) new_esEs(x0, x1) new_primQuotInt0(x0, Pos(Zero)) new_quot26(x0, x1, x2) new_quot7(x0, x1, Succ(x2), Zero, x3, x4) new_primRemInt(Pos(x0), Pos(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_absReal18(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqNat0(Succ(x0), Succ(x1)) new_gcd0Gcd'00(x0, x1) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_quot46(x0) new_primModNatS02(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_absReal16(x0) new_primMulNat0(Succ(x0), Succ(x1)) new_quot31(x0, Integer(Neg(Succ(x1))), Integer(Pos(x2)), x3, x4, x5) new_quot31(x0, Integer(Pos(Succ(x1))), Integer(Neg(x2)), x3, x4, x5) new_primNegInt2(x0) new_ps(x0, x1, app(ty_Ratio, x2)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMulNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_quot43(x0) new_absReal15(x0, Succ(x1), Zero) new_quot51(x0, x1, x2, x3, ty_Integer) new_quot12(x0, x1, x2) new_quot22(x0, True, x1, x2) new_quot23(x0, Pos(Succ(x1)), Integer(Neg(x2)), x3, x4, x5) new_ps1(Double(x0, x1), Double(x2, x3)) new_quot38(x0) new_quot29(x0, x1, Zero, Zero, x2, x3) new_absReal18(Pos(Succ(x0)), Pos(x1)) new_quot35(x0, x1, x2) new_primPlusInt(Pos(x0), Neg(x1)) new_primPlusInt(Neg(x0), Pos(x1)) new_quot32(x0, x1, Succ(x2), Succ(x3), x4, x5) new_gcd0(x0, x1) new_gcd0Gcd'10(True, x0, x1) new_quot54(Neg(x0), x1, x2) new_quot21(x0, False, x1, x2) new_absReal111 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (703) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_enforceWHNF(vuz7, :(vuz80, vuz81), h) -> new_enforceWHNF(new_ps(vuz7, vuz80, h), vuz81, h) The graph contains the following edges 2 > 2, 3 >= 3 ---------------------------------------- (704) YES ---------------------------------------- (705) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot(vuz177, vuz178, Succ(vuz1790), Succ(vuz1800)) -> new_quot(vuz177, vuz178, vuz1790, vuz1800) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (706) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_quot(vuz177, vuz178, Succ(vuz1790), Succ(vuz1800)) -> new_quot(vuz177, vuz178, vuz1790, vuz1800) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (707) YES ---------------------------------------- (708) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot6(vuz136, vuz137, Succ(vuz1380), Succ(vuz1390), vuz140, vuz141) -> new_quot6(vuz136, vuz137, vuz1380, vuz1390, vuz140, vuz141) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (709) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_quot6(vuz136, vuz137, Succ(vuz1380), Succ(vuz1390), vuz140, vuz141) -> new_quot6(vuz136, vuz137, vuz1380, vuz1390, vuz140, vuz141) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (710) YES ---------------------------------------- (711) Obligation: Q DP problem: The TRS P consists of the following rules: new_primEqNat(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat(vuz26000, vuz25000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (712) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primEqNat(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat(vuz26000, vuz25000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (713) YES ---------------------------------------- (714) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz290, vuz153, vuz94, vuz101, vuz152) -> new_quot1(vuz290, new_esEs0(new_primRemInt(vuz153, vuz94), vuz101), vuz94, new_primRemInt(vuz153, vuz94)) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, new_fromInt0, vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Zero, vuz7000) -> Zero new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_error -> error([]) new_esEs0(vuz28, Integer(vuz270)) -> new_primEqInt(vuz28, vuz270) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_fromInt0 -> Integer(Pos(Zero)) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_esEs0(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_fromInt0 new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (715) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, new_fromInt0, vuz94) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94),new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94)) ---------------------------------------- (716) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz290, vuz153, vuz94, vuz101, vuz152) -> new_quot1(vuz290, new_esEs0(new_primRemInt(vuz153, vuz94), vuz101), vuz94, new_primRemInt(vuz153, vuz94)) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primModNatS1(Zero, vuz7000) -> Zero new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_error -> error([]) new_esEs0(vuz28, Integer(vuz270)) -> new_primEqInt(vuz28, vuz270) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_fromInt0 -> Integer(Pos(Zero)) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_esEs0(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_fromInt0 new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 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_quot2(vuz290, vuz153, vuz94, vuz101, vuz152) -> new_quot1(vuz290, new_esEs0(new_primRemInt(vuz153, vuz94), vuz101), vuz94, new_primRemInt(vuz153, vuz94)) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz270)) -> new_primEqInt(vuz28, vuz270) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_esEs0(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_fromInt0 new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_fromInt0 ---------------------------------------- (720) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz290, vuz153, vuz94, vuz101, vuz152) -> new_quot1(vuz290, new_esEs0(new_primRemInt(vuz153, vuz94), vuz101), vuz94, new_primRemInt(vuz153, vuz94)) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz270)) -> new_primEqInt(vuz28, vuz270) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_esEs0(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (721) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_quot2(vuz290, vuz153, vuz94, vuz101, vuz152) -> new_quot1(vuz290, new_esEs0(new_primRemInt(vuz153, vuz94), vuz101), vuz94, new_primRemInt(vuz153, vuz94)) we obtained the following new rules [LPAR04]: (new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)),new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2))) ---------------------------------------- (722) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz270)) -> new_primEqInt(vuz28, vuz270) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_esEs0(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (723) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)),new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2))) ---------------------------------------- (724) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz270)) -> new_primEqInt(vuz28, vuz270) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2600)), Neg(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Neg(Succ(vuz2600)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Succ(vuz2600)), Pos(Succ(vuz2500))) -> new_primEqNat0(vuz2600, vuz2500) new_primEqInt(Pos(Succ(vuz2600)), Neg(vuz250)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2500))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2500))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz26000), Zero) -> False new_primEqNat0(Zero, Succ(vuz25000)) -> False new_primEqNat0(Succ(vuz26000), Succ(vuz25000)) -> new_primEqNat0(vuz26000, vuz25000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_esEs0(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (725) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (726) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_esEs0(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqNat0(Zero, Succ(x0)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (727) 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(x0, Integer(x1)) new_primEqNat0(Zero, Zero) new_primEqNat0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqNat0(Zero, Succ(x0)) ---------------------------------------- (728) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (729) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) the following chains were created: *We consider the chain new_quot1(x3, False, x4, x5) -> new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot2(x6, x7, x8, Integer(Pos(Zero)), x7) -> new_quot1(x6, new_primEqInt(new_primRemInt(x7, x8), Pos(Zero)), x8, new_primRemInt(x7, x8)) which results in the following constraint: (1) (new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot2(x6, x7, x8, Integer(Pos(Zero)), x7) ==> new_quot1(x3, False, x4, x5)_>=_new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x3, False, x4, x5)_>=_new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4)) For Pair new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) the following chains were created: *We consider the chain new_quot2(x9, x10, x11, Integer(Pos(Zero)), x10) -> new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11)), new_quot1(x12, False, x13, x14) -> new_quot2(x12, x13, x14, Integer(Pos(Zero)), x13) which results in the following constraint: (1) (new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))=new_quot1(x12, False, x13, x14) ==> new_quot2(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_primRemInt(x10, x11)=x18 & Pos(Zero)=x19 & new_primEqInt(x18, x19)=False ==> new_quot2(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x18, x19)=False which results in the following new constraints: (3) (False=False & new_primRemInt(x10, x11)=Pos(Succ(x20)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) (4) (False=False & new_primRemInt(x10, x11)=Neg(Succ(x22)) & Pos(Zero)=Pos(x21) ==> new_quot2(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (new_primRemInt(x10, x11)=Pos(Succ(x20)) ==> new_quot2(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: (6) (new_primRemInt(x10, x11)=Neg(Succ(x22)) ==> new_quot2(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot1(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Pos(Succ(x20)) which results in the following new constraints: (7) (Pos(new_primModNatS1(x24, x23))=Pos(Succ(x20)) ==> new_quot2(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) (8) (Pos(new_primModNatS1(x26, x25))=Pos(Succ(x20)) ==> new_quot2(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) (9) (new_error=Pos(Succ(x20)) ==> new_quot2(x9, Neg(x27), Neg(Zero), Integer(Pos(Zero)), Neg(x27))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x27), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x27), Neg(Zero)))) (10) (new_error=Pos(Succ(x20)) ==> new_quot2(x9, Pos(x30), Pos(Zero), Integer(Pos(Zero)), Pos(x30))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x30), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x30), Pos(Zero)))) (11) (new_error=Pos(Succ(x20)) ==> new_quot2(x9, Pos(x33), Neg(Zero), Integer(Pos(Zero)), Pos(x33))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x33), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x33), Neg(Zero)))) (12) (new_error=Pos(Succ(x20)) ==> new_quot2(x9, Neg(x34), Pos(Zero), Integer(Pos(Zero)), Neg(x34))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x34), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x34), Pos(Zero)))) We simplified constraint (7) using rules (I), (II) which results in the following new constraint: (13) (new_primModNatS1(x24, x23)=Succ(x20) ==> new_quot2(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (14) (new_primModNatS1(x26, x25)=Succ(x20) ==> new_quot2(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) We solved constraint (9) using rule (V) (with possible (I) afterwards).We solved constraint (10) using rule (V) (with possible (I) afterwards).We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x23)=Succ(x20) which results in the following new constraints: (15) (Succ(Zero)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) (16) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) (17) (new_primModNatS1(new_primMinusNatS0(Succ(x37), Zero), Zero)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) (18) (new_primModNatS01(x39, x38, x39, x38)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38))), Integer(Pos(Zero)), Pos(Succ(Succ(x39))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))), Pos(Zero)), Neg(Succ(Succ(x38))), new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_quot2(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_quot2(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_quot2(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_quot2(x9, Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49))), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))), Pos(Zero)), Neg(Succ(Succ(x49))), new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))))) We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x26, x25)=Succ(x20) which results in the following new constraints: (23) (Succ(Zero)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x50))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))))) (24) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) (25) (new_primModNatS1(new_primMinusNatS0(Succ(x52), Zero), Zero)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Succ(x52))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x52))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))))) (26) (new_primModNatS01(x54, x53, x54, x53)=Succ(x20) ==> new_quot2(x9, Pos(Succ(Succ(x54))), Pos(Succ(Succ(x53))), Integer(Pos(Zero)), Pos(Succ(Succ(x54))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x54))), Pos(Succ(Succ(x53)))), Pos(Zero)), Pos(Succ(Succ(x53))), new_primRemInt(Pos(Succ(Succ(x54))), Pos(Succ(Succ(x53)))))) We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: (27) (new_quot2(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x50))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))))) We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: (28) (new_quot2(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_quot2(x9, Pos(Succ(Succ(x52))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x52))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (30) (new_quot2(x9, Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64))), Integer(Pos(Zero)), Pos(Succ(Succ(x63))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))), Pos(Zero)), Pos(Succ(Succ(x64))), new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Neg(Succ(x22)) which results in the following new constraints: (31) (new_error=Neg(Succ(x22)) ==> new_quot2(x9, Neg(x69), Neg(Zero), Integer(Pos(Zero)), Neg(x69))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x69), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x69), Neg(Zero)))) (32) (Neg(new_primModNatS1(x71, x70))=Neg(Succ(x22)) ==> new_quot2(x9, Neg(x71), Pos(Succ(x70)), Integer(Pos(Zero)), Neg(x71))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x71), Pos(Succ(x70))), Pos(Zero)), Pos(Succ(x70)), new_primRemInt(Neg(x71), Pos(Succ(x70))))) (33) (new_error=Neg(Succ(x22)) ==> new_quot2(x9, Pos(x72), Pos(Zero), Integer(Pos(Zero)), Pos(x72))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x72), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x72), Pos(Zero)))) (34) (Neg(new_primModNatS1(x74, x73))=Neg(Succ(x22)) ==> new_quot2(x9, Neg(x74), Neg(Succ(x73)), Integer(Pos(Zero)), Neg(x74))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x74), Neg(Succ(x73))), Pos(Zero)), Neg(Succ(x73)), new_primRemInt(Neg(x74), Neg(Succ(x73))))) (35) (new_error=Neg(Succ(x22)) ==> new_quot2(x9, Pos(x75), Neg(Zero), Integer(Pos(Zero)), Pos(x75))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(x75), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x75), Neg(Zero)))) (36) (new_error=Neg(Succ(x22)) ==> new_quot2(x9, Neg(x76), Pos(Zero), Integer(Pos(Zero)), Neg(x76))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x76), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x76), Pos(Zero)))) We solved constraint (31) using rule (V) (with possible (I) afterwards).We simplified constraint (32) using rules (I), (II) which results in the following new constraint: (37) (new_primModNatS1(x71, x70)=Succ(x22) ==> new_quot2(x9, Neg(x71), Pos(Succ(x70)), Integer(Pos(Zero)), Neg(x71))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x71), Pos(Succ(x70))), Pos(Zero)), Pos(Succ(x70)), new_primRemInt(Neg(x71), Pos(Succ(x70))))) We solved constraint (33) using rule (V) (with possible (I) afterwards).We simplified constraint (34) using rules (I), (II) which results in the following new constraint: (38) (new_primModNatS1(x74, x73)=Succ(x22) ==> new_quot2(x9, Neg(x74), Neg(Succ(x73)), Integer(Pos(Zero)), Neg(x74))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(x74), Neg(Succ(x73))), Pos(Zero)), Neg(Succ(x73)), new_primRemInt(Neg(x74), Neg(Succ(x73))))) We solved constraint (35) using rule (V) (with possible (I) afterwards).We solved constraint (36) using rule (V) (with possible (I) afterwards).We simplified constraint (37) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x71, x70)=Succ(x22) which results in the following new constraints: (39) (Succ(Zero)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x77))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))), Pos(Zero)), Pos(Succ(Succ(x77))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))))) (40) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) (41) (new_primModNatS1(new_primMinusNatS0(Succ(x79), Zero), Zero)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Succ(x79))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x79))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))))) (42) (new_primModNatS01(x81, x80, x81, x80)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Succ(x81))), Pos(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Succ(x81))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x81))), Pos(Succ(Succ(x80)))), Pos(Zero)), Pos(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Succ(x81))), Pos(Succ(Succ(x80)))))) We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint: (43) (new_quot2(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x77))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))), Pos(Zero)), Pos(Succ(Succ(x77))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))))) We simplified constraint (40) using rules (III), (IV), (VII) which results in the following new constraint: (44) (new_quot2(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (41) using rules (III), (IV), (VII) which results in the following new constraint: (45) (new_quot2(x9, Neg(Succ(Succ(x79))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x79))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))))) We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: (46) (new_quot2(x9, Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91))), Integer(Pos(Zero)), Neg(Succ(Succ(x90))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))), Pos(Zero)), Pos(Succ(Succ(x91))), new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))))) We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x74, x73)=Succ(x22) which results in the following new constraints: (47) (Succ(Zero)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x92))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))), Pos(Zero)), Neg(Succ(Succ(x92))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))))) (48) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) (49) (new_primModNatS1(new_primMinusNatS0(Succ(x94), Zero), Zero)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Succ(x94))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x94))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))))) (50) (new_primModNatS01(x96, x95, x96, x95)=Succ(x22) ==> new_quot2(x9, Neg(Succ(Succ(x96))), Neg(Succ(Succ(x95))), Integer(Pos(Zero)), Neg(Succ(Succ(x96))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x96))), Neg(Succ(Succ(x95)))), Pos(Zero)), Neg(Succ(Succ(x95))), new_primRemInt(Neg(Succ(Succ(x96))), Neg(Succ(Succ(x95)))))) We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint: (51) (new_quot2(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x92))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))), Pos(Zero)), Neg(Succ(Succ(x92))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))))) We simplified constraint (48) using rules (III), (IV), (VII) which results in the following new constraint: (52) (new_quot2(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (49) using rules (III), (IV), (VII) which results in the following new constraint: (53) (new_quot2(x9, Neg(Succ(Succ(x94))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x94))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))))) We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: (54) (new_quot2(x9, Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106))), Integer(Pos(Zero)), Neg(Succ(Succ(x105))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))), Pos(Zero)), Neg(Succ(Succ(x106))), new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) *(new_quot1(x3, False, x4, x5)_>=_new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4)) *new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) *(new_quot2(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) *(new_quot2(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x50))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))))) *(new_quot2(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x77))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))), Pos(Zero)), Pos(Succ(Succ(x77))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))))) *(new_quot2(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x92))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))), Pos(Zero)), Neg(Succ(Succ(x92))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))))) *(new_quot2(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) *(new_quot2(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) *(new_quot2(x9, Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49))), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))), Pos(Zero)), Neg(Succ(Succ(x49))), new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))))) *(new_quot2(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) *(new_quot2(x9, Pos(Succ(Succ(x52))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x52))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))))) *(new_quot2(x9, Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64))), Integer(Pos(Zero)), Pos(Succ(Succ(x63))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))), Pos(Zero)), Pos(Succ(Succ(x64))), new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))))) *(new_quot2(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) *(new_quot2(x9, Neg(Succ(Succ(x79))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x79))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))))) *(new_quot2(x9, Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91))), Integer(Pos(Zero)), Neg(Succ(Succ(x90))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))), Pos(Zero)), Pos(Succ(Succ(x91))), new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))))) *(new_quot2(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) *(new_quot2(x9, Neg(Succ(Succ(x94))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x94))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))))) *(new_quot2(x9, Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106))), Integer(Pos(Zero)), Neg(Succ(Succ(x105))))_>=_new_quot1(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))), Pos(Zero)), Neg(Succ(Succ(x106))), new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (730) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (731) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot1(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))),new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1))))) (new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))),new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1))))) (new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) (new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))),new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1))))) (new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) (new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))),new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1))))) (new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) (new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) ---------------------------------------- (732) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (733) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) ---------------------------------------- (734) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz710), Neg(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (735) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (736) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (737) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) ---------------------------------------- (738) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error new_primRemInt(Pos(vuz710), Pos(Succ(vuz7000))) -> Pos(new_primModNatS1(vuz710, vuz7000)) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (739) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (740) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (741) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) ---------------------------------------- (742) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (743) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (744) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Neg(vuz710), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (745) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (746) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (747) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) ---------------------------------------- (748) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz710), Pos(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (749) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (750) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (751) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) ---------------------------------------- (752) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (753) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (754) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) new_primRemInt(Pos(vuz710), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (755) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (756) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (757) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) ---------------------------------------- (758) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz710), Neg(Succ(vuz7000))) -> Neg(new_primModNatS1(vuz710, vuz7000)) The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (759) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (760) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (761) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) ---------------------------------------- (762) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (763) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (764) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz710), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (765) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (766) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (767) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) ---------------------------------------- (768) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (769) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (770) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz710), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (771) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (772) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (773) 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(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Neg(x0), Neg(Zero)) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (774) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (775) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot2(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot2(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) (new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (776) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (777) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (778) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (779) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (780) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (781) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (782) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (783) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (784) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (785) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))),new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (786) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (787) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (788) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (789) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (790) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (791) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (792) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (793) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (794) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (795) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (796) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (797) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot2(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot2(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) (new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (798) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (799) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (800) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (801) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (802) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (803) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (804) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (805) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (806) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (807) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))),new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (808) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (809) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (810) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (811) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (812) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (813) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (814) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (815) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (816) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (817) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (818) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (819) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot2(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot2(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) (new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (820) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (821) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (822) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (823) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (824) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (825) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (826) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (827) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (828) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (829) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))),new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (830) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (831) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (832) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (833) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (834) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (835) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (836) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (837) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (838) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (839) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (840) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (841) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot2(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot2(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) (new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (842) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (843) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (844) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (845) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (846) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (847) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (848) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (849) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (850) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (851) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))),new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (852) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (853) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (854) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (855) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (856) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (857) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (858) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (859) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (860) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (861) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (862) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (863) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (864) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (865) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (866) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (867) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (868) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (869) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (870) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (871) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (872) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (873) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (874) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (875) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (876) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (877) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (878) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (879) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (880) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (881) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (882) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (883) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (884) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (885) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (886) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (887) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero)))) ---------------------------------------- (888) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (889) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (890) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (891) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (892) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (893) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (894) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (895) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (896) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (897) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (898) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (899) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (900) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (901) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (902) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (903) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (904) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (905) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (906) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (907) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (908) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (909) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (910) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (911) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (912) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (913) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (914) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (915) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (916) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (917) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (918) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (919) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (920) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (921) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (922) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (923) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (924) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (925) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (926) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (927) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (928) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (929) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (930) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (931) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (932) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (933) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero)))) ---------------------------------------- (934) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (935) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (936) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (937) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (938) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (939) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (940) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (941) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (942) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (943) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (944) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (945) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (946) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (947) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (948) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (949) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (950) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (951) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (952) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (953) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (954) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (955) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (956) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (957) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (958) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (959) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (960) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (961) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (962) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (963) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (964) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (965) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (966) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (967) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (968) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (969) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (970) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (971) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (972) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (973) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (974) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (975) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (976) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (977) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (978) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (979) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero)))) ---------------------------------------- (980) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (981) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (982) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (983) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (984) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (985) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (986) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (987) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (988) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (989) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (990) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (991) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (992) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (993) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (994) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (995) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (996) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (997) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (998) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (999) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1000) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1001) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (1002) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1003) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (1004) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1005) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (1006) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1007) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (1008) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1009) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (1010) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1011) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (1012) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1013) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (1014) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1015) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS01(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1016) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1017) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (1018) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1019) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (1020) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1021) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) ---------------------------------------- (1022) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1023) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1024) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1025) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero)))) ---------------------------------------- (1026) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1027) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1028) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1029) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (1030) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1031) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (1032) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1033) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1034) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1035) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (1036) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1037) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1038) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1039) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (1040) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1041) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1042) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1043) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1044) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1045) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1046) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1047) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1048) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1049) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1050) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1051) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (1052) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1053) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1054) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1055) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1056) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1057) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1058) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1059) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1060) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1061) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1062) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1063) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1064) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1065) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1066) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1067) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1068) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1069) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1070) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1071) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1072) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1073) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1074) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1075) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (1076) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1077) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1078) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1079) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1080) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1081) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1082) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1083) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (1084) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1085) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (1086) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1087) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (1088) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1089) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (1090) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1091) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (1092) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1093) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1094) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1095) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (1096) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1097) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1098) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1099) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (1100) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1101) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1102) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1103) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1104) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1105) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1106) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1107) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1108) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1109) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1110) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1111) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (1112) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1113) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1114) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1115) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1116) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1117) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1118) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1119) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1120) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1121) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1122) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1123) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1124) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1125) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1126) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1127) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1128) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1129) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1130) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1131) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1132) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1133) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1134) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1135) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (1136) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1137) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1138) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1139) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1140) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1141) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1142) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1143) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (1144) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1145) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (1146) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1147) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (1148) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1149) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (1150) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1151) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (1152) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1153) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1154) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1155) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (1156) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1157) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1158) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1159) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (1160) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1161) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1162) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1163) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1164) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1165) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1166) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1167) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1168) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1169) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1170) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1171) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (1172) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1173) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1174) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1175) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1176) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1177) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1178) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1179) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1180) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1181) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1182) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1183) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1184) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1185) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1186) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1187) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1188) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1189) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1190) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1191) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1192) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1193) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1194) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1195) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (1196) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1197) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1198) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1199) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1200) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1201) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1202) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1203) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (1204) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1205) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (1206) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1207) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (1208) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1209) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (1210) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1211) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (1212) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1213) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1214) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1215) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (1216) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1217) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1218) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1219) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (1220) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1221) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1222) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1223) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1224) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1225) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1226) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1227) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1228) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1229) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1230) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1231) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (1232) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1233) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1234) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1235) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (1236) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1237) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1238) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1239) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1240) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1241) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS01(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1242) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1243) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1244) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1245) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1246) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1247) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1248) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1249) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (1250) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1251) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (1252) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1253) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1254) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1255) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (1256) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1257) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1258) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1259) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1260) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1261) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1262) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1263) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (1264) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1265) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (1266) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1267) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (1268) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1269) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (1270) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1271) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (1272) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1273) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1274) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1275) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (1276) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1277) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1278) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1279) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (1280) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1281) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (1282) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1283) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1284) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1285) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1286) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1287) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Integer(x_1)) = 0 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 POL(True) = 1 POL(Zero) = 0 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS02(x_1, x_2)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 POL(new_quot1(x_1, x_2, x_3, x_4)) = x_3 + x_4 POL(new_quot2(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Zero, vuz7000) -> Zero ---------------------------------------- (1288) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1289) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Integer(x_1)) = 0 POL(Neg(x_1)) = 0 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 POL(True) = 1 POL(Zero) = 0 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS02(x_1, x_2)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 POL(new_quot1(x_1, x_2, x_3, x_4)) = x_3 + x_4 POL(new_quot2(x_1, x_2, x_3, x_4, x_5)) = x_3 + x_5 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Zero, vuz7000) -> Zero ---------------------------------------- (1290) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1291) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) the following chains were created: *We consider the chain new_quot1(x3, False, x4, x5) -> new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot2(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(x6, False, Neg(Succ(Succ(x7))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot2(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot1(x3, False, x4, x5)_>=_new_quot2(x3, x4, x5, Integer(Pos(Zero)), x4)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot2(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *We consider the chain new_quot1(x8, False, x9, x10) -> new_quot2(x8, x9, x10, Integer(Pos(Zero)), x9), new_quot2(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(x11, False, Pos(Succ(Succ(x12))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x8, x9, x10, Integer(Pos(Zero)), x9)=new_quot2(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot1(x8, False, x9, x10)_>=_new_quot2(x8, x9, x10, Integer(Pos(Zero)), x9)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot2(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *We consider the chain new_quot1(x13, False, x14, x15) -> new_quot2(x13, x14, x15, Integer(Pos(Zero)), x14), new_quot2(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(x16, False, Pos(Succ(Succ(x17))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x13, x14, x15, Integer(Pos(Zero)), x14)=new_quot2(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot1(x13, False, x14, x15)_>=_new_quot2(x13, x14, x15, Integer(Pos(Zero)), x14)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot2(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *We consider the chain new_quot1(x18, False, x19, x20) -> new_quot2(x18, x19, x20, Integer(Pos(Zero)), x19), new_quot2(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(x21, False, Neg(Succ(Succ(x22))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x18, x19, x20, Integer(Pos(Zero)), x19)=new_quot2(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot1(x18, False, x19, x20)_>=_new_quot2(x18, x19, x20, Integer(Pos(Zero)), x19)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot2(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *We consider the chain new_quot1(x23, False, x24, x25) -> new_quot2(x23, x24, x25, Integer(Pos(Zero)), x24), new_quot2(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(x26, False, Neg(Succ(Succ(Succ(x27)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot2(x23, x24, x25, Integer(Pos(Zero)), x24)=new_quot2(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot1(x23, False, x24, x25)_>=_new_quot2(x23, x24, x25, Integer(Pos(Zero)), x24)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot2(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *We consider the chain new_quot1(x28, False, x29, x30) -> new_quot2(x28, x29, x30, Integer(Pos(Zero)), x29), new_quot2(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(x31, False, Pos(Succ(Succ(Succ(x32)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot2(x28, x29, x30, Integer(Pos(Zero)), x29)=new_quot2(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot1(x28, False, x29, x30)_>=_new_quot2(x28, x29, x30, Integer(Pos(Zero)), x29)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot2(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *We consider the chain new_quot1(x33, False, x34, x35) -> new_quot2(x33, x34, x35, Integer(Pos(Zero)), x34), new_quot2(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(x36, False, Pos(Succ(Succ(Succ(x37)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot2(x33, x34, x35, Integer(Pos(Zero)), x34)=new_quot2(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot1(x33, False, x34, x35)_>=_new_quot2(x33, x34, x35, Integer(Pos(Zero)), x34)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot2(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *We consider the chain new_quot1(x38, False, x39, x40) -> new_quot2(x38, x39, x40, Integer(Pos(Zero)), x39), new_quot2(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(x41, False, Neg(Succ(Succ(Succ(x42)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot2(x38, x39, x40, Integer(Pos(Zero)), x39)=new_quot2(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot1(x38, False, x39, x40)_>=_new_quot2(x38, x39, x40, Integer(Pos(Zero)), x39)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot2(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *We consider the chain new_quot1(x43, False, x44, x45) -> new_quot2(x43, x44, x45, Integer(Pos(Zero)), x44), new_quot2(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) -> new_quot1(x46, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x48))))), Pos(new_primModNatS01(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48))) which results in the following constraint: (1) (new_quot2(x43, x44, x45, Integer(Pos(Zero)), x44)=new_quot2(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) ==> new_quot1(x43, False, x44, x45)_>=_new_quot2(x43, x44, x45, Integer(Pos(Zero)), x44)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot2(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) *We consider the chain new_quot1(x49, False, x50, x51) -> new_quot2(x49, x50, x51, Integer(Pos(Zero)), x50), new_quot2(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x52, False, Neg(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x49, x50, x51, Integer(Pos(Zero)), x50)=new_quot2(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot1(x49, False, x50, x51)_>=_new_quot2(x49, x50, x51, Integer(Pos(Zero)), x50)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot2(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot1(x54, False, x55, x56) -> new_quot2(x54, x55, x56, Integer(Pos(Zero)), x55), new_quot2(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) -> new_quot1(x57, new_primEqInt(Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x54, x55, x56, Integer(Pos(Zero)), x55)=new_quot2(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) ==> new_quot1(x54, False, x55, x56)_>=_new_quot2(x54, x55, x56, Integer(Pos(Zero)), x55)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) *We consider the chain new_quot1(x59, False, x60, x61) -> new_quot2(x59, x60, x61, Integer(Pos(Zero)), x60), new_quot2(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) -> new_quot1(x62, new_primEqInt(Pos(new_primModNatS01(x63, Zero, x63, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x63, Zero, x63, Zero))) which results in the following constraint: (1) (new_quot2(x59, x60, x61, Integer(Pos(Zero)), x60)=new_quot2(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) ==> new_quot1(x59, False, x60, x61)_>=_new_quot2(x59, x60, x61, Integer(Pos(Zero)), x60)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) *We consider the chain new_quot1(x64, False, x65, x66) -> new_quot2(x64, x65, x66, Integer(Pos(Zero)), x65), new_quot2(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x67, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x64, x65, x66, Integer(Pos(Zero)), x65)=new_quot2(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot1(x64, False, x65, x66)_>=_new_quot2(x64, x65, x66, Integer(Pos(Zero)), x65)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot1(x68, False, x69, x70) -> new_quot2(x68, x69, x70, Integer(Pos(Zero)), x69), new_quot2(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) -> new_quot1(x71, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x73))))), Pos(new_primModNatS01(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73))) which results in the following constraint: (1) (new_quot2(x68, x69, x70, Integer(Pos(Zero)), x69)=new_quot2(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) ==> new_quot1(x68, False, x69, x70)_>=_new_quot2(x68, x69, x70, Integer(Pos(Zero)), x69)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot2(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) *We consider the chain new_quot1(x74, False, x75, x76) -> new_quot2(x74, x75, x76, Integer(Pos(Zero)), x75), new_quot2(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x77, False, Pos(Succ(Succ(Succ(Succ(x78))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x74, x75, x76, Integer(Pos(Zero)), x75)=new_quot2(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot1(x74, False, x75, x76)_>=_new_quot2(x74, x75, x76, Integer(Pos(Zero)), x75)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot2(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot1(x79, False, x80, x81) -> new_quot2(x79, x80, x81, Integer(Pos(Zero)), x80), new_quot2(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) -> new_quot1(x82, new_primEqInt(Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x79, x80, x81, Integer(Pos(Zero)), x80)=new_quot2(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) ==> new_quot1(x79, False, x80, x81)_>=_new_quot2(x79, x80, x81, Integer(Pos(Zero)), x80)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) *We consider the chain new_quot1(x84, False, x85, x86) -> new_quot2(x84, x85, x86, Integer(Pos(Zero)), x85), new_quot2(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) -> new_quot1(x87, new_primEqInt(Pos(new_primModNatS01(x88, Zero, x88, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x88, Zero, x88, Zero))) which results in the following constraint: (1) (new_quot2(x84, x85, x86, Integer(Pos(Zero)), x85)=new_quot2(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) ==> new_quot1(x84, False, x85, x86)_>=_new_quot2(x84, x85, x86, Integer(Pos(Zero)), x85)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) *We consider the chain new_quot1(x89, False, x90, x91) -> new_quot2(x89, x90, x91, Integer(Pos(Zero)), x90), new_quot2(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x92, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x89, x90, x91, Integer(Pos(Zero)), x90)=new_quot2(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot1(x89, False, x90, x91)_>=_new_quot2(x89, x90, x91, Integer(Pos(Zero)), x90)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot1(x93, False, x94, x95) -> new_quot2(x93, x94, x95, Integer(Pos(Zero)), x94), new_quot2(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) -> new_quot1(x96, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x98))))), Neg(new_primModNatS01(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98))) which results in the following constraint: (1) (new_quot2(x93, x94, x95, Integer(Pos(Zero)), x94)=new_quot2(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) ==> new_quot1(x93, False, x94, x95)_>=_new_quot2(x93, x94, x95, Integer(Pos(Zero)), x94)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot2(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) *We consider the chain new_quot1(x99, False, x100, x101) -> new_quot2(x99, x100, x101, Integer(Pos(Zero)), x100), new_quot2(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x102, False, Pos(Succ(Succ(Succ(Succ(x103))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x99, x100, x101, Integer(Pos(Zero)), x100)=new_quot2(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot1(x99, False, x100, x101)_>=_new_quot2(x99, x100, x101, Integer(Pos(Zero)), x100)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot2(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot1(x104, False, x105, x106) -> new_quot2(x104, x105, x106, Integer(Pos(Zero)), x105), new_quot2(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) -> new_quot1(x107, new_primEqInt(Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x104, x105, x106, Integer(Pos(Zero)), x105)=new_quot2(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) ==> new_quot1(x104, False, x105, x106)_>=_new_quot2(x104, x105, x106, Integer(Pos(Zero)), x105)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) *We consider the chain new_quot1(x109, False, x110, x111) -> new_quot2(x109, x110, x111, Integer(Pos(Zero)), x110), new_quot2(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) -> new_quot1(x112, new_primEqInt(Neg(new_primModNatS01(x113, Zero, x113, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x113, Zero, x113, Zero))) which results in the following constraint: (1) (new_quot2(x109, x110, x111, Integer(Pos(Zero)), x110)=new_quot2(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) ==> new_quot1(x109, False, x110, x111)_>=_new_quot2(x109, x110, x111, Integer(Pos(Zero)), x110)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) *We consider the chain new_quot1(x114, False, x115, x116) -> new_quot2(x114, x115, x116, Integer(Pos(Zero)), x115), new_quot2(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x117, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x114, x115, x116, Integer(Pos(Zero)), x115)=new_quot2(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot1(x114, False, x115, x116)_>=_new_quot2(x114, x115, x116, Integer(Pos(Zero)), x115)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot1(x118, False, x119, x120) -> new_quot2(x118, x119, x120, Integer(Pos(Zero)), x119), new_quot2(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) -> new_quot1(x121, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x123))))), Neg(new_primModNatS01(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123))) which results in the following constraint: (1) (new_quot2(x118, x119, x120, Integer(Pos(Zero)), x119)=new_quot2(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) ==> new_quot1(x118, False, x119, x120)_>=_new_quot2(x118, x119, x120, Integer(Pos(Zero)), x119)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot2(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) *We consider the chain new_quot1(x124, False, x125, x126) -> new_quot2(x124, x125, x126, Integer(Pos(Zero)), x125), new_quot2(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x127, False, Neg(Succ(Succ(Succ(Succ(x128))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x124, x125, x126, Integer(Pos(Zero)), x125)=new_quot2(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot1(x124, False, x125, x126)_>=_new_quot2(x124, x125, x126, Integer(Pos(Zero)), x125)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot2(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot1(x129, False, x130, x131) -> new_quot2(x129, x130, x131, Integer(Pos(Zero)), x130), new_quot2(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) -> new_quot1(x132, new_primEqInt(Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot2(x129, x130, x131, Integer(Pos(Zero)), x130)=new_quot2(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) ==> new_quot1(x129, False, x130, x131)_>=_new_quot2(x129, x130, x131, Integer(Pos(Zero)), x130)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) *We consider the chain new_quot1(x134, False, x135, x136) -> new_quot2(x134, x135, x136, Integer(Pos(Zero)), x135), new_quot2(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) -> new_quot1(x137, new_primEqInt(Neg(new_primModNatS01(x138, Zero, x138, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x138, Zero, x138, Zero))) which results in the following constraint: (1) (new_quot2(x134, x135, x136, Integer(Pos(Zero)), x135)=new_quot2(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) ==> new_quot1(x134, False, x135, x136)_>=_new_quot2(x134, x135, x136, Integer(Pos(Zero)), x135)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) *We consider the chain new_quot1(x139, False, x140, x141) -> new_quot2(x139, x140, x141, Integer(Pos(Zero)), x140), new_quot2(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x142, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot2(x139, x140, x141, Integer(Pos(Zero)), x140)=new_quot2(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot1(x139, False, x140, x141)_>=_new_quot2(x139, x140, x141, Integer(Pos(Zero)), x140)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot1(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero))), new_quot1(x145, False, x146, x147) -> new_quot2(x145, x146, x147, Integer(Pos(Zero)), x146) which results in the following constraint: (1) (new_quot1(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))=new_quot1(x145, False, x146, x147) ==> new_quot2(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) For Pair new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero))), new_quot1(x206, False, x207, x208) -> new_quot2(x206, x207, x208, Integer(Pos(Zero)), x207) which results in the following constraint: (1) (new_quot1(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))=new_quot1(x206, False, x207, x208) ==> new_quot2(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) For Pair new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero))), new_quot1(x267, False, x268, x269) -> new_quot2(x267, x268, x269, Integer(Pos(Zero)), x268) which results in the following constraint: (1) (new_quot1(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))=new_quot1(x267, False, x268, x269) ==> new_quot2(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) For Pair new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero))), new_quot1(x328, False, x329, x330) -> new_quot2(x328, x329, x330, Integer(Pos(Zero)), x329) which results in the following constraint: (1) (new_quot1(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))=new_quot1(x328, False, x329, x330) ==> new_quot2(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) For Pair new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot2(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero)))), new_quot1(x389, False, x390, x391) -> new_quot2(x389, x390, x391, Integer(Pos(Zero)), x390) which results in the following constraint: (1) (new_quot1(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))=new_quot1(x389, False, x390, x391) ==> new_quot2(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot1(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot1(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) For Pair new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot2(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero)))), new_quot1(x450, False, x451, x452) -> new_quot2(x450, x451, x452, Integer(Pos(Zero)), x451) which results in the following constraint: (1) (new_quot1(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))=new_quot1(x450, False, x451, x452) ==> new_quot2(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot1(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot1(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) For Pair new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot2(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero)))), new_quot1(x511, False, x512, x513) -> new_quot2(x511, x512, x513, Integer(Pos(Zero)), x512) which results in the following constraint: (1) (new_quot1(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))=new_quot1(x511, False, x512, x513) ==> new_quot2(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot1(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot1(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) For Pair new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot2(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero)))), new_quot1(x572, False, x573, x574) -> new_quot2(x572, x573, x574, Integer(Pos(Zero)), x573) which results in the following constraint: (1) (new_quot1(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))=new_quot1(x572, False, x573, x574) ==> new_quot2(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot1(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot1(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), 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_quot2(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632)))))) -> new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))), new_quot1(x634, False, x635, x636) -> new_quot2(x634, x635, x636, Integer(Pos(Zero)), x635) which results in the following constraint: (1) (new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))=new_quot1(x634, False, x635, x636) ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=x1851 & Pos(Zero)=x1852 & new_primEqInt(x1851, x1852)=False ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1851, x1852)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Neg(Succ(x1854)) & Pos(Zero)=Pos(x1853) ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) (4) (False=False & Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Pos(Succ(x1855)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x632))=x1856 & Succ(Succ(x633))=x1857 & new_primModNatS01(x1856, x1857, x632, x633)=Succ(x1855) ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS01(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1856, x1857, x632, x633)=Succ(x1855) which results in the following new constraints: (6) (new_primModNatS02(x1859, x1858)=Succ(x1855) & Succ(Succ(Zero))=x1859 & Succ(Succ(Zero))=x1858 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (7) (new_primModNatS01(x1863, x1862, x1861, x1860)=Succ(x1855) & Succ(Succ(Succ(x1861)))=x1863 & Succ(Succ(Succ(x1860)))=x1862 & (\/x1864,x1865:new_primModNatS01(x1863, x1862, x1861, x1860)=Succ(x1864) & Succ(Succ(x1861))=x1863 & Succ(Succ(x1860))=x1862 ==> new_quot2(x1865, Pos(Succ(Succ(Succ(Succ(x1861))))), Neg(Succ(Succ(Succ(Succ(x1860))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1861))))))_>=_new_quot1(x1865, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x1861)), Succ(Succ(x1860)), x1861, x1860)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1860))))), Pos(new_primModNatS01(Succ(Succ(x1861)), Succ(Succ(x1860)), x1861, x1860)))) ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1861)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1860)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1861)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1861))), Succ(Succ(Succ(x1860))), Succ(x1861), Succ(x1860))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1860)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1861))), Succ(Succ(Succ(x1860))), Succ(x1861), Succ(x1860))))) (8) (new_primModNatS02(x1868, x1867)=Succ(x1855) & Succ(Succ(Succ(x1866)))=x1868 & Succ(Succ(Zero))=x1867 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)))) (9) (Succ(Succ(x1871))=Succ(x1855) & Succ(Succ(Zero))=x1871 & Succ(Succ(Succ(x1869)))=x1870 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1859, x1858)=Succ(x1855) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x1873), Succ(x1872)), Succ(x1872))=Succ(x1855) & Succ(Succ(Zero))=x1873 & Succ(Succ(Zero))=x1872 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x1863, x1862, x1861, x1860)=Succ(x1855) & Succ(Succ(Succ(x1861)))=x1863 & Succ(Succ(Succ(x1860)))=x1862 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1861)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1860)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1861)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1861))), Succ(Succ(Succ(x1860))), Succ(x1861), Succ(x1860))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1860)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1861))), Succ(Succ(Succ(x1860))), Succ(x1861), Succ(x1860))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1868, x1867)=Succ(x1855) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x1893), Succ(x1892)), Succ(x1892))=Succ(x1855) & Succ(Succ(Succ(x1866)))=x1893 & Succ(Succ(Zero))=x1892 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1863, x1862, x1861, x1860)=Succ(x1855) which results in the following new constraints: (15) (new_primModNatS02(x1879, x1878)=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1879 & Succ(Succ(Succ(Zero)))=x1878 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (16) (new_primModNatS01(x1883, x1882, x1881, x1880)=Succ(x1855) & Succ(Succ(Succ(Succ(x1881))))=x1883 & Succ(Succ(Succ(Succ(x1880))))=x1882 & (\/x1884,x1885:new_primModNatS01(x1883, x1882, x1881, x1880)=Succ(x1884) & Succ(Succ(Succ(x1881)))=x1883 & Succ(Succ(Succ(x1880)))=x1882 ==> new_quot2(x1885, Pos(Succ(Succ(Succ(Succ(Succ(x1881)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1880)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1881)))))))_>=_new_quot1(x1885, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1881))), Succ(Succ(Succ(x1880))), Succ(x1881), Succ(x1880))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1880)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1881))), Succ(Succ(Succ(x1880))), Succ(x1881), Succ(x1880))))) ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1880))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(Succ(Succ(x1880)))), Succ(Succ(x1881)), Succ(Succ(x1880)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1880))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(Succ(Succ(x1880)))), Succ(Succ(x1881)), Succ(Succ(x1880)))))) (17) (new_primModNatS02(x1888, x1887)=Succ(x1855) & Succ(Succ(Succ(Succ(x1886))))=x1888 & Succ(Succ(Succ(Zero)))=x1887 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1886))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1886))))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1886)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1886)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1886)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1886)), Succ(Zero))))) (18) (Succ(Succ(x1891))=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1891 & Succ(Succ(Succ(Succ(x1889))))=x1890 ==> new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), 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 (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1880))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(Succ(Succ(x1880)))), Succ(Succ(x1881)), Succ(Succ(x1880)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1880))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(Succ(Succ(x1880)))), Succ(Succ(x1881)), Succ(Succ(x1880)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1886))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1886))))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1886)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1886)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1886)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1886)), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero))))), new_quot1(x723, False, x724, x725) -> new_quot2(x723, x724, x725, Integer(Pos(Zero)), x724) which results in the following constraint: (1) (new_quot1(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot1(x723, False, x724, x725) ==> new_quot2(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783)))))) -> new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))), new_quot1(x784, False, x785, x786) -> new_quot2(x784, x785, x786, Integer(Pos(Zero)), x785) which results in the following constraint: (1) (new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))=new_quot1(x784, False, x785, x786) ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=x1898 & Pos(Zero)=x1899 & new_primEqInt(x1898, x1899)=False ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1898, x1899)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Neg(Succ(x1901)) & Pos(Zero)=Pos(x1900) ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (4) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Pos(Succ(x1902)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x783)=x1903 & Succ(Succ(Zero))=x1904 & new_primModNatS1(x1903, x1904)=Succ(x1902) ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1903, x1904)=Succ(x1902) which results in the following new constraints: (6) (Succ(Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1905) ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x1907), Zero), Zero)=Succ(x1902) & Succ(x783)=Succ(Succ(x1907)) & Succ(Succ(Zero))=Zero ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (9) (new_primModNatS01(x1909, x1908, x1909, x1908)=Succ(x1902) & Succ(x783)=Succ(Succ(x1909)) & Succ(Succ(Zero))=Succ(x1908) ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x1909=x1910 & x1908=x1911 & new_primModNatS01(x1909, x1908, x1910, x1911)=Succ(x1902) & Succ(Zero)=x1908 ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1909, x1908, x1910, x1911)=Succ(x1902) which results in the following new constraints: (12) (new_primModNatS02(x1913, x1912)=Succ(x1902) & x1913=Zero & x1912=Zero & Succ(Zero)=x1912 ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1913)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1913)))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1913)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1913)), Succ(Succ(Zero)))))) (13) (new_primModNatS01(x1917, x1916, x1915, x1914)=Succ(x1902) & x1917=Succ(x1915) & x1916=Succ(x1914) & Succ(Zero)=x1916 & (\/x1918,x1919:new_primModNatS01(x1917, x1916, x1915, x1914)=Succ(x1918) & x1917=x1915 & x1916=x1914 & Succ(Zero)=x1916 ==> new_quot2(x1919, Pos(Succ(Succ(Succ(Succ(Succ(x1917)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1917)))))))_>=_new_quot1(x1919, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1917)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1917)), Succ(Succ(Zero)))))) ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1917)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1917)))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1917)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1917)), Succ(Succ(Zero)))))) (14) (new_primModNatS02(x1922, x1921)=Succ(x1902) & x1922=Succ(x1920) & x1921=Zero & Succ(Zero)=x1921 ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x1925))=Succ(x1902) & x1925=Zero & x1924=Succ(x1923) & Succ(Zero)=x1924 ==> new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1915))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1915))))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1915))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1915))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844)))))) -> new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x844, Zero, x844, Zero))), new_quot1(x845, False, x846, x847) -> new_quot2(x845, x846, x847, Integer(Pos(Zero)), x846) which results in the following constraint: (1) (new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x844, Zero, x844, Zero)))=new_quot1(x845, False, x846, x847) ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x844, Zero, x844, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(x844, Zero, x844, Zero))=x1928 & Pos(Zero)=x1929 & new_primEqInt(x1928, x1929)=False ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x844, Zero, x844, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1928, x1929)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS01(x844, Zero, x844, Zero))=Neg(Succ(x1931)) & Pos(Zero)=Pos(x1930) ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x844, Zero, x844, Zero)))) (4) (False=False & Pos(new_primModNatS01(x844, Zero, x844, Zero))=Pos(Succ(x1932)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x844, Zero, x844, Zero)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Zero=x1933 & x844=x1934 & Zero=x1935 & new_primModNatS01(x844, x1933, x1934, x1935)=Succ(x1932) ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x844, Zero, x844, Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x844, x1933, x1934, x1935)=Succ(x1932) which results in the following new constraints: (6) (new_primModNatS02(x1937, x1936)=Succ(x1932) & Zero=x1936 & x1937=Zero & Zero=Zero ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x1937))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1937))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x1937, Zero, x1937, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1937, Zero, x1937, Zero)))) (7) (new_primModNatS01(x1941, x1940, x1939, x1938)=Succ(x1932) & Zero=x1940 & x1941=Succ(x1939) & Zero=Succ(x1938) & (\/x1942,x1943:new_primModNatS01(x1941, x1940, x1939, x1938)=Succ(x1942) & Zero=x1940 & x1941=x1939 & Zero=x1938 ==> new_quot2(x1943, Pos(Succ(Succ(Succ(Succ(x1941))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1941))))))_>=_new_quot1(x1943, new_primEqInt(Pos(new_primModNatS01(x1941, Zero, x1941, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1941, Zero, x1941, Zero)))) ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x1941))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1941))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x1941, Zero, x1941, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1941, Zero, x1941, Zero)))) (8) (new_primModNatS02(x1946, x1945)=Succ(x1932) & Zero=x1945 & x1946=Succ(x1944) & Zero=Zero ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x1946))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1946))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x1946, Zero, x1946, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1946, Zero, x1946, Zero)))) (9) (Succ(Succ(x1949))=Succ(x1932) & Zero=x1948 & x1949=Zero & Zero=Succ(x1947) ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(x1949))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1949))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(x1949, Zero, x1949, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x1949, Zero, x1949, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Zero=x1950 & new_primModNatS02(x1950, x1936)=Succ(x1932) & Zero=x1936 ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Succ(x1944)=x1957 & new_primModNatS02(x1957, x1945)=Succ(x1932) & Zero=x1945 ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1950, x1936)=Succ(x1932) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x1952), Succ(x1951)), Succ(x1951))=Succ(x1932) & Zero=x1952 & Zero=x1951 ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1957, x1945)=Succ(x1932) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x1959), Succ(x1958)), Succ(x1958))=Succ(x1932) & Succ(x1944)=x1959 & Zero=x1958 ==> new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot1(x905, False, x906, x907) -> new_quot2(x905, x906, x907, Integer(Pos(Zero)), x906) which results in the following constraint: (1) (new_quot1(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot1(x905, False, x906, x907) ==> new_quot2(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), 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_quot2(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937)))))) -> new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))), new_quot1(x939, False, x940, x941) -> new_quot2(x939, x940, x941, Integer(Pos(Zero)), x940) which results in the following constraint: (1) (new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))=new_quot1(x939, False, x940, x941) ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=x1964 & Pos(Zero)=x1965 & new_primEqInt(x1964, x1965)=False ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1964, x1965)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Neg(Succ(x1967)) & Pos(Zero)=Pos(x1966) ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) (4) (False=False & Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Pos(Succ(x1968)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x937))=x1969 & Succ(Succ(x938))=x1970 & new_primModNatS01(x1969, x1970, x937, x938)=Succ(x1968) ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS01(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1969, x1970, x937, x938)=Succ(x1968) which results in the following new constraints: (6) (new_primModNatS02(x1972, x1971)=Succ(x1968) & Succ(Succ(Zero))=x1972 & Succ(Succ(Zero))=x1971 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (7) (new_primModNatS01(x1976, x1975, x1974, x1973)=Succ(x1968) & Succ(Succ(Succ(x1974)))=x1976 & Succ(Succ(Succ(x1973)))=x1975 & (\/x1977,x1978:new_primModNatS01(x1976, x1975, x1974, x1973)=Succ(x1977) & Succ(Succ(x1974))=x1976 & Succ(Succ(x1973))=x1975 ==> new_quot2(x1978, Pos(Succ(Succ(Succ(Succ(x1974))))), Pos(Succ(Succ(Succ(Succ(x1973))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1974))))))_>=_new_quot1(x1978, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x1974)), Succ(Succ(x1973)), x1974, x1973)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1973))))), Pos(new_primModNatS01(Succ(Succ(x1974)), Succ(Succ(x1973)), x1974, x1973)))) ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1973)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1974))), Succ(Succ(Succ(x1973))), Succ(x1974), Succ(x1973))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1973)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1974))), Succ(Succ(Succ(x1973))), Succ(x1974), Succ(x1973))))) (8) (new_primModNatS02(x1981, x1980)=Succ(x1968) & Succ(Succ(Succ(x1979)))=x1981 & Succ(Succ(Zero))=x1980 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)))) (9) (Succ(Succ(x1984))=Succ(x1968) & Succ(Succ(Zero))=x1984 & Succ(Succ(Succ(x1982)))=x1983 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1972, x1971)=Succ(x1968) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x1986), Succ(x1985)), Succ(x1985))=Succ(x1968) & Succ(Succ(Zero))=x1986 & Succ(Succ(Zero))=x1985 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x1976, x1975, x1974, x1973)=Succ(x1968) & Succ(Succ(Succ(x1974)))=x1976 & Succ(Succ(Succ(x1973)))=x1975 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1973)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1974))), Succ(Succ(Succ(x1973))), Succ(x1974), Succ(x1973))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1973)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1974))), Succ(Succ(Succ(x1973))), Succ(x1974), Succ(x1973))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1981, x1980)=Succ(x1968) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2006), Succ(x2005)), Succ(x2005))=Succ(x1968) & Succ(Succ(Succ(x1979)))=x2006 & Succ(Succ(Zero))=x2005 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1976, x1975, x1974, x1973)=Succ(x1968) which results in the following new constraints: (15) (new_primModNatS02(x1992, x1991)=Succ(x1968) & Succ(Succ(Succ(Zero)))=x1992 & Succ(Succ(Succ(Zero)))=x1991 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (16) (new_primModNatS01(x1996, x1995, x1994, x1993)=Succ(x1968) & Succ(Succ(Succ(Succ(x1994))))=x1996 & Succ(Succ(Succ(Succ(x1993))))=x1995 & (\/x1997,x1998:new_primModNatS01(x1996, x1995, x1994, x1993)=Succ(x1997) & Succ(Succ(Succ(x1994)))=x1996 & Succ(Succ(Succ(x1993)))=x1995 ==> new_quot2(x1998, Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1993)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))))_>=_new_quot1(x1998, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1994))), Succ(Succ(Succ(x1993))), Succ(x1994), Succ(x1993))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1993)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1994))), Succ(Succ(Succ(x1993))), Succ(x1994), Succ(x1993))))) ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1993))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(Succ(Succ(x1993)))), Succ(Succ(x1994)), Succ(Succ(x1993)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1993))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(Succ(Succ(x1993)))), Succ(Succ(x1994)), Succ(Succ(x1993)))))) (17) (new_primModNatS02(x2001, x2000)=Succ(x1968) & Succ(Succ(Succ(Succ(x1999))))=x2001 & Succ(Succ(Succ(Zero)))=x2000 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1999))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1999))))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1999)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1999)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1999)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1999)), Succ(Zero))))) (18) (Succ(Succ(x2004))=Succ(x1968) & Succ(Succ(Succ(Zero)))=x2004 & Succ(Succ(Succ(Succ(x2002))))=x2003 ==> new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), 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 (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1993))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(Succ(Succ(x1993)))), Succ(Succ(x1994)), Succ(Succ(x1993)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1993))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(Succ(Succ(x1993)))), Succ(Succ(x1994)), Succ(Succ(x1993)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1999))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1999))))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1999)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1999)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1999)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1999)), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero))))), new_quot1(x1028, False, x1029, x1030) -> new_quot2(x1028, x1029, x1030, Integer(Pos(Zero)), x1029) which results in the following constraint: (1) (new_quot1(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot1(x1028, False, x1029, x1030) ==> new_quot2(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088)))))) -> new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))), new_quot1(x1089, False, x1090, x1091) -> new_quot2(x1089, x1090, x1091, Integer(Pos(Zero)), x1090) which results in the following constraint: (1) (new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))=new_quot1(x1089, False, x1090, x1091) ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=x2011 & Pos(Zero)=x2012 & new_primEqInt(x2011, x2012)=False ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2011, x2012)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Neg(Succ(x2014)) & Pos(Zero)=Pos(x2013) ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (4) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Pos(Succ(x2015)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x1088)=x2016 & Succ(Succ(Zero))=x2017 & new_primModNatS1(x2016, x2017)=Succ(x2015) ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2016, x2017)=Succ(x2015) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2018) ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x2020), Zero), Zero)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2020)) & Succ(Succ(Zero))=Zero ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (9) (new_primModNatS01(x2022, x2021, x2022, x2021)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2022)) & Succ(Succ(Zero))=Succ(x2021) ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2022=x2023 & x2021=x2024 & new_primModNatS01(x2022, x2021, x2023, x2024)=Succ(x2015) & Succ(Zero)=x2021 ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2022, x2021, x2023, x2024)=Succ(x2015) which results in the following new constraints: (12) (new_primModNatS02(x2026, x2025)=Succ(x2015) & x2026=Zero & x2025=Zero & Succ(Zero)=x2025 ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2026)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2026)))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2026)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2026)), Succ(Succ(Zero)))))) (13) (new_primModNatS01(x2030, x2029, x2028, x2027)=Succ(x2015) & x2030=Succ(x2028) & x2029=Succ(x2027) & Succ(Zero)=x2029 & (\/x2031,x2032:new_primModNatS01(x2030, x2029, x2028, x2027)=Succ(x2031) & x2030=x2028 & x2029=x2027 & Succ(Zero)=x2029 ==> new_quot2(x2032, Pos(Succ(Succ(Succ(Succ(Succ(x2030)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2030)))))))_>=_new_quot1(x2032, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2030)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2030)), Succ(Succ(Zero)))))) ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2030)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2030)))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2030)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2030)), Succ(Succ(Zero)))))) (14) (new_primModNatS02(x2035, x2034)=Succ(x2015) & x2035=Succ(x2033) & x2034=Zero & Succ(Zero)=x2034 ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2038))=Succ(x2015) & x2038=Zero & x2037=Succ(x2036) & Succ(Zero)=x2037 ==> new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2028))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2028))))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2028))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2028))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149)))))) -> new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1149, Zero, x1149, Zero))), new_quot1(x1150, False, x1151, x1152) -> new_quot2(x1150, x1151, x1152, Integer(Pos(Zero)), x1151) which results in the following constraint: (1) (new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1149, Zero, x1149, Zero)))=new_quot1(x1150, False, x1151, x1152) ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1149, Zero, x1149, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS01(x1149, Zero, x1149, Zero))=x2041 & Pos(Zero)=x2042 & new_primEqInt(x2041, x2042)=False ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1149, Zero, x1149, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2041, x2042)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS01(x1149, Zero, x1149, Zero))=Neg(Succ(x2044)) & Pos(Zero)=Pos(x2043) ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1149, Zero, x1149, Zero)))) (4) (False=False & Pos(new_primModNatS01(x1149, Zero, x1149, Zero))=Pos(Succ(x2045)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1149, Zero, x1149, Zero)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Zero=x2046 & x1149=x2047 & Zero=x2048 & new_primModNatS01(x1149, x2046, x2047, x2048)=Succ(x2045) ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x1149, Zero, x1149, Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1149, x2046, x2047, x2048)=Succ(x2045) which results in the following new constraints: (6) (new_primModNatS02(x2050, x2049)=Succ(x2045) & Zero=x2049 & x2050=Zero & Zero=Zero ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x2050))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2050))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x2050, Zero, x2050, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x2050, Zero, x2050, Zero)))) (7) (new_primModNatS01(x2054, x2053, x2052, x2051)=Succ(x2045) & Zero=x2053 & x2054=Succ(x2052) & Zero=Succ(x2051) & (\/x2055,x2056:new_primModNatS01(x2054, x2053, x2052, x2051)=Succ(x2055) & Zero=x2053 & x2054=x2052 & Zero=x2051 ==> new_quot2(x2056, Pos(Succ(Succ(Succ(Succ(x2054))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2054))))))_>=_new_quot1(x2056, new_primEqInt(Pos(new_primModNatS01(x2054, Zero, x2054, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x2054, Zero, x2054, Zero)))) ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x2054))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2054))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x2054, Zero, x2054, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x2054, Zero, x2054, Zero)))) (8) (new_primModNatS02(x2059, x2058)=Succ(x2045) & Zero=x2058 & x2059=Succ(x2057) & Zero=Zero ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x2059))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2059))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x2059, Zero, x2059, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x2059, Zero, x2059, Zero)))) (9) (Succ(Succ(x2062))=Succ(x2045) & Zero=x2061 & x2062=Zero & Zero=Succ(x2060) ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(x2062))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2062))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(x2062, Zero, x2062, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x2062, Zero, x2062, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Zero=x2063 & new_primModNatS02(x2063, x2049)=Succ(x2045) & Zero=x2049 ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Succ(x2057)=x2070 & new_primModNatS02(x2070, x2058)=Succ(x2045) & Zero=x2058 ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2063, x2049)=Succ(x2045) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2065), Succ(x2064)), Succ(x2064))=Succ(x2045) & Zero=x2065 & Zero=x2064 ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2070, x2058)=Succ(x2045) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x2072), Succ(x2071)), Succ(x2071))=Succ(x2045) & Succ(x2057)=x2072 & Zero=x2071 ==> new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)))) For Pair new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot1(x1210, False, x1211, x1212) -> new_quot2(x1210, x1211, x1212, Integer(Pos(Zero)), x1211) which results in the following constraint: (1) (new_quot1(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot1(x1210, False, x1211, x1212) ==> new_quot2(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), 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_quot2(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242)))))) -> new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))), new_quot1(x1244, False, x1245, x1246) -> new_quot2(x1244, x1245, x1246, Integer(Pos(Zero)), x1245) which results in the following constraint: (1) (new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))=new_quot1(x1244, False, x1245, x1246) ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=x2077 & Pos(Zero)=x2078 & new_primEqInt(x2077, x2078)=False ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2077, x2078)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Neg(Succ(x2080)) & Pos(Zero)=Pos(x2079) ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) (4) (False=False & Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Pos(Succ(x2081)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x1242))=x2082 & Succ(Succ(x1243))=x2083 & new_primModNatS01(x2082, x2083, x1242, x1243)=Succ(x2080) ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS01(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2082, x2083, x1242, x1243)=Succ(x2080) which results in the following new constraints: (6) (new_primModNatS02(x2085, x2084)=Succ(x2080) & Succ(Succ(Zero))=x2085 & Succ(Succ(Zero))=x2084 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (7) (new_primModNatS01(x2089, x2088, x2087, x2086)=Succ(x2080) & Succ(Succ(Succ(x2087)))=x2089 & Succ(Succ(Succ(x2086)))=x2088 & (\/x2090,x2091:new_primModNatS01(x2089, x2088, x2087, x2086)=Succ(x2090) & Succ(Succ(x2087))=x2089 & Succ(Succ(x2086))=x2088 ==> new_quot2(x2091, Neg(Succ(Succ(Succ(Succ(x2087))))), Pos(Succ(Succ(Succ(Succ(x2086))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2087))))))_>=_new_quot1(x2091, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2087)), Succ(Succ(x2086)), x2087, x2086)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2086))))), Neg(new_primModNatS01(Succ(Succ(x2087)), Succ(Succ(x2086)), x2087, x2086)))) ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2087)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2086)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2087)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2087))), Succ(Succ(Succ(x2086))), Succ(x2087), Succ(x2086))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2086)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2087))), Succ(Succ(Succ(x2086))), Succ(x2087), Succ(x2086))))) (8) (new_primModNatS02(x2094, x2093)=Succ(x2080) & Succ(Succ(Succ(x2092)))=x2094 & Succ(Succ(Zero))=x2093 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)))) (9) (Succ(Succ(x2097))=Succ(x2080) & Succ(Succ(Zero))=x2097 & Succ(Succ(Succ(x2095)))=x2096 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2085, x2084)=Succ(x2080) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x2099), Succ(x2098)), Succ(x2098))=Succ(x2080) & Succ(Succ(Zero))=x2099 & Succ(Succ(Zero))=x2098 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x2089, x2088, x2087, x2086)=Succ(x2080) & Succ(Succ(Succ(x2087)))=x2089 & Succ(Succ(Succ(x2086)))=x2088 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2087)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2086)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2087)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2087))), Succ(Succ(Succ(x2086))), Succ(x2087), Succ(x2086))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2086)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2087))), Succ(Succ(Succ(x2086))), Succ(x2087), Succ(x2086))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2094, x2093)=Succ(x2080) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2119), Succ(x2118)), Succ(x2118))=Succ(x2080) & Succ(Succ(Succ(x2092)))=x2119 & Succ(Succ(Zero))=x2118 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2089, x2088, x2087, x2086)=Succ(x2080) which results in the following new constraints: (15) (new_primModNatS02(x2105, x2104)=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2105 & Succ(Succ(Succ(Zero)))=x2104 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (16) (new_primModNatS01(x2109, x2108, x2107, x2106)=Succ(x2080) & Succ(Succ(Succ(Succ(x2107))))=x2109 & Succ(Succ(Succ(Succ(x2106))))=x2108 & (\/x2110,x2111:new_primModNatS01(x2109, x2108, x2107, x2106)=Succ(x2110) & Succ(Succ(Succ(x2107)))=x2109 & Succ(Succ(Succ(x2106)))=x2108 ==> new_quot2(x2111, Neg(Succ(Succ(Succ(Succ(Succ(x2107)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2106)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2107)))))))_>=_new_quot1(x2111, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2107))), Succ(Succ(Succ(x2106))), Succ(x2107), Succ(x2106))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2106)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2107))), Succ(Succ(Succ(x2106))), Succ(x2107), Succ(x2106))))) ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2106))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(Succ(Succ(x2106)))), Succ(Succ(x2107)), Succ(Succ(x2106)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2106))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(Succ(Succ(x2106)))), Succ(Succ(x2107)), Succ(Succ(x2106)))))) (17) (new_primModNatS02(x2114, x2113)=Succ(x2080) & Succ(Succ(Succ(Succ(x2112))))=x2114 & Succ(Succ(Succ(Zero)))=x2113 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2112))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2112))))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2112)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2112)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2112)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2112)), Succ(Zero))))) (18) (Succ(Succ(x2117))=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2117 & Succ(Succ(Succ(Succ(x2115))))=x2116 ==> new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), 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 (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2106))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(Succ(Succ(x2106)))), Succ(Succ(x2107)), Succ(Succ(x2106)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2106))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(Succ(Succ(x2106)))), Succ(Succ(x2107)), Succ(Succ(x2106)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2112))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2112))))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2112)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2112)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2112)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2112)), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero))))), new_quot1(x1333, False, x1334, x1335) -> new_quot2(x1333, x1334, x1335, Integer(Pos(Zero)), x1334) which results in the following constraint: (1) (new_quot1(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot1(x1333, False, x1334, x1335) ==> new_quot2(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393)))))) -> new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))), new_quot1(x1394, False, x1395, x1396) -> new_quot2(x1394, x1395, x1396, Integer(Pos(Zero)), x1395) which results in the following constraint: (1) (new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))=new_quot1(x1394, False, x1395, x1396) ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=x2124 & Pos(Zero)=x2125 & new_primEqInt(x2124, x2125)=False ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2124, x2125)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Neg(Succ(x2127)) & Pos(Zero)=Pos(x2126) ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (4) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Pos(Succ(x2128)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(x1393)=x2129 & Succ(Succ(Zero))=x2130 & new_primModNatS1(x2129, x2130)=Succ(x2127) ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2129, x2130)=Succ(x2127) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2131) ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x2133), Zero), Zero)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2133)) & Succ(Succ(Zero))=Zero ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (9) (new_primModNatS01(x2135, x2134, x2135, x2134)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2135)) & Succ(Succ(Zero))=Succ(x2134) ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2135=x2136 & x2134=x2137 & new_primModNatS01(x2135, x2134, x2136, x2137)=Succ(x2127) & Succ(Zero)=x2134 ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2135, x2134, x2136, x2137)=Succ(x2127) which results in the following new constraints: (12) (new_primModNatS02(x2139, x2138)=Succ(x2127) & x2139=Zero & x2138=Zero & Succ(Zero)=x2138 ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2139)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2139)))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2139)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2139)), Succ(Succ(Zero)))))) (13) (new_primModNatS01(x2143, x2142, x2141, x2140)=Succ(x2127) & x2143=Succ(x2141) & x2142=Succ(x2140) & Succ(Zero)=x2142 & (\/x2144,x2145:new_primModNatS01(x2143, x2142, x2141, x2140)=Succ(x2144) & x2143=x2141 & x2142=x2140 & Succ(Zero)=x2142 ==> new_quot2(x2145, Neg(Succ(Succ(Succ(Succ(Succ(x2143)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2143)))))))_>=_new_quot1(x2145, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2143)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2143)), Succ(Succ(Zero)))))) ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2143)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2143)))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2143)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2143)), Succ(Succ(Zero)))))) (14) (new_primModNatS02(x2148, x2147)=Succ(x2127) & x2148=Succ(x2146) & x2147=Zero & Succ(Zero)=x2147 ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2151))=Succ(x2127) & x2151=Zero & x2150=Succ(x2149) & Succ(Zero)=x2150 ==> new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2141))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2141))))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2141))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2141))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454)))))) -> new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1454, Zero, x1454, Zero))), new_quot1(x1455, False, x1456, x1457) -> new_quot2(x1455, x1456, x1457, Integer(Pos(Zero)), x1456) which results in the following constraint: (1) (new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1454, Zero, x1454, Zero)))=new_quot1(x1455, False, x1456, x1457) ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1454, Zero, x1454, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(x1454, Zero, x1454, Zero))=x2154 & Pos(Zero)=x2155 & new_primEqInt(x2154, x2155)=False ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1454, Zero, x1454, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2154, x2155)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS01(x1454, Zero, x1454, Zero))=Neg(Succ(x2157)) & Pos(Zero)=Pos(x2156) ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1454, Zero, x1454, Zero)))) (4) (False=False & Neg(new_primModNatS01(x1454, Zero, x1454, Zero))=Pos(Succ(x2158)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1454, Zero, x1454, Zero)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Zero=x2159 & x1454=x2160 & Zero=x2161 & new_primModNatS01(x1454, x2159, x2160, x2161)=Succ(x2157) ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x1454, Zero, x1454, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1454, x2159, x2160, x2161)=Succ(x2157) which results in the following new constraints: (6) (new_primModNatS02(x2163, x2162)=Succ(x2157) & Zero=x2162 & x2163=Zero & Zero=Zero ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x2163))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2163))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x2163, Zero, x2163, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x2163, Zero, x2163, Zero)))) (7) (new_primModNatS01(x2167, x2166, x2165, x2164)=Succ(x2157) & Zero=x2166 & x2167=Succ(x2165) & Zero=Succ(x2164) & (\/x2168,x2169:new_primModNatS01(x2167, x2166, x2165, x2164)=Succ(x2168) & Zero=x2166 & x2167=x2165 & Zero=x2164 ==> new_quot2(x2169, Neg(Succ(Succ(Succ(Succ(x2167))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2167))))))_>=_new_quot1(x2169, new_primEqInt(Neg(new_primModNatS01(x2167, Zero, x2167, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x2167, Zero, x2167, Zero)))) ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x2167))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2167))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x2167, Zero, x2167, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x2167, Zero, x2167, Zero)))) (8) (new_primModNatS02(x2172, x2171)=Succ(x2157) & Zero=x2171 & x2172=Succ(x2170) & Zero=Zero ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x2172))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2172))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x2172, Zero, x2172, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x2172, Zero, x2172, Zero)))) (9) (Succ(Succ(x2175))=Succ(x2157) & Zero=x2174 & x2175=Zero & Zero=Succ(x2173) ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(x2175))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2175))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(x2175, Zero, x2175, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x2175, Zero, x2175, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Zero=x2176 & new_primModNatS02(x2176, x2162)=Succ(x2157) & Zero=x2162 ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Succ(x2170)=x2183 & new_primModNatS02(x2183, x2171)=Succ(x2157) & Zero=x2171 ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2176, x2162)=Succ(x2157) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2178), Succ(x2177)), Succ(x2177))=Succ(x2157) & Zero=x2178 & Zero=x2177 ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2183, x2171)=Succ(x2157) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x2185), Succ(x2184)), Succ(x2184))=Succ(x2157) & Succ(x2170)=x2185 & Zero=x2184 ==> new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot1(x1515, False, x1516, x1517) -> new_quot2(x1515, x1516, x1517, Integer(Pos(Zero)), x1516) which results in the following constraint: (1) (new_quot1(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot1(x1515, False, x1516, x1517) ==> new_quot2(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), 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_quot2(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547)))))) -> new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))), new_quot1(x1549, False, x1550, x1551) -> new_quot2(x1549, x1550, x1551, Integer(Pos(Zero)), x1550) which results in the following constraint: (1) (new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))=new_quot1(x1549, False, x1550, x1551) ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=x2190 & Pos(Zero)=x2191 & new_primEqInt(x2190, x2191)=False ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2190, x2191)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Neg(Succ(x2193)) & Pos(Zero)=Pos(x2192) ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) (4) (False=False & Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Pos(Succ(x2194)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x1547))=x2195 & Succ(Succ(x1548))=x2196 & new_primModNatS01(x2195, x2196, x1547, x1548)=Succ(x2193) ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS01(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2195, x2196, x1547, x1548)=Succ(x2193) which results in the following new constraints: (6) (new_primModNatS02(x2198, x2197)=Succ(x2193) & Succ(Succ(Zero))=x2198 & Succ(Succ(Zero))=x2197 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (7) (new_primModNatS01(x2202, x2201, x2200, x2199)=Succ(x2193) & Succ(Succ(Succ(x2200)))=x2202 & Succ(Succ(Succ(x2199)))=x2201 & (\/x2203,x2204:new_primModNatS01(x2202, x2201, x2200, x2199)=Succ(x2203) & Succ(Succ(x2200))=x2202 & Succ(Succ(x2199))=x2201 ==> new_quot2(x2204, Neg(Succ(Succ(Succ(Succ(x2200))))), Neg(Succ(Succ(Succ(Succ(x2199))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2200))))))_>=_new_quot1(x2204, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2200)), Succ(Succ(x2199)), x2200, x2199)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2199))))), Neg(new_primModNatS01(Succ(Succ(x2200)), Succ(Succ(x2199)), x2200, x2199)))) ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2199)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2200))), Succ(Succ(Succ(x2199))), Succ(x2200), Succ(x2199))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2199)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2200))), Succ(Succ(Succ(x2199))), Succ(x2200), Succ(x2199))))) (8) (new_primModNatS02(x2207, x2206)=Succ(x2193) & Succ(Succ(Succ(x2205)))=x2207 & Succ(Succ(Zero))=x2206 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)))) (9) (Succ(Succ(x2210))=Succ(x2193) & Succ(Succ(Zero))=x2210 & Succ(Succ(Succ(x2208)))=x2209 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2198, x2197)=Succ(x2193) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x2212), Succ(x2211)), Succ(x2211))=Succ(x2193) & Succ(Succ(Zero))=x2212 & Succ(Succ(Zero))=x2211 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x2202, x2201, x2200, x2199)=Succ(x2193) & Succ(Succ(Succ(x2200)))=x2202 & Succ(Succ(Succ(x2199)))=x2201 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2199)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2200))), Succ(Succ(Succ(x2199))), Succ(x2200), Succ(x2199))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2199)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2200))), Succ(Succ(Succ(x2199))), Succ(x2200), Succ(x2199))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2207, x2206)=Succ(x2193) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2232), Succ(x2231)), Succ(x2231))=Succ(x2193) & Succ(Succ(Succ(x2205)))=x2232 & Succ(Succ(Zero))=x2231 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2202, x2201, x2200, x2199)=Succ(x2193) which results in the following new constraints: (15) (new_primModNatS02(x2218, x2217)=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2218 & Succ(Succ(Succ(Zero)))=x2217 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (16) (new_primModNatS01(x2222, x2221, x2220, x2219)=Succ(x2193) & Succ(Succ(Succ(Succ(x2220))))=x2222 & Succ(Succ(Succ(Succ(x2219))))=x2221 & (\/x2223,x2224:new_primModNatS01(x2222, x2221, x2220, x2219)=Succ(x2223) & Succ(Succ(Succ(x2220)))=x2222 & Succ(Succ(Succ(x2219)))=x2221 ==> new_quot2(x2224, Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2219)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))))_>=_new_quot1(x2224, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2220))), Succ(Succ(Succ(x2219))), Succ(x2220), Succ(x2219))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2219)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2220))), Succ(Succ(Succ(x2219))), Succ(x2220), Succ(x2219))))) ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2219))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(Succ(Succ(x2219)))), Succ(Succ(x2220)), Succ(Succ(x2219)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2219))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(Succ(Succ(x2219)))), Succ(Succ(x2220)), Succ(Succ(x2219)))))) (17) (new_primModNatS02(x2227, x2226)=Succ(x2193) & Succ(Succ(Succ(Succ(x2225))))=x2227 & Succ(Succ(Succ(Zero)))=x2226 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2225))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2225))))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2225)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2225)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2225)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2225)), Succ(Zero))))) (18) (Succ(Succ(x2230))=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2230 & Succ(Succ(Succ(Succ(x2228))))=x2229 ==> new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), 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 (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2219))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(Succ(Succ(x2219)))), Succ(Succ(x2220)), Succ(Succ(x2219)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2219))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(Succ(Succ(x2219)))), Succ(Succ(x2220)), Succ(Succ(x2219)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2225))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2225))))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2225)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2225)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2225)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2225)), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero))))), new_quot1(x1638, False, x1639, x1640) -> new_quot2(x1638, x1639, x1640, Integer(Pos(Zero)), x1639) which results in the following constraint: (1) (new_quot1(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot1(x1638, False, x1639, x1640) ==> new_quot2(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698)))))) -> new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))), new_quot1(x1699, False, x1700, x1701) -> new_quot2(x1699, x1700, x1701, Integer(Pos(Zero)), x1700) which results in the following constraint: (1) (new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))=new_quot1(x1699, False, x1700, x1701) ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=x2237 & Pos(Zero)=x2238 & new_primEqInt(x2237, x2238)=False ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2237, x2238)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Neg(Succ(x2240)) & Pos(Zero)=Pos(x2239) ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (4) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Pos(Succ(x2241)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(x1698)=x2242 & Succ(Succ(Zero))=x2243 & new_primModNatS1(x2242, x2243)=Succ(x2240) ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2242, x2243)=Succ(x2240) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2244) ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x2246), Zero), Zero)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2246)) & Succ(Succ(Zero))=Zero ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (9) (new_primModNatS01(x2248, x2247, x2248, x2247)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2248)) & Succ(Succ(Zero))=Succ(x2247) ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2248=x2249 & x2247=x2250 & new_primModNatS01(x2248, x2247, x2249, x2250)=Succ(x2240) & Succ(Zero)=x2247 ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2248, x2247, x2249, x2250)=Succ(x2240) which results in the following new constraints: (12) (new_primModNatS02(x2252, x2251)=Succ(x2240) & x2252=Zero & x2251=Zero & Succ(Zero)=x2251 ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2252)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2252)))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2252)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2252)), Succ(Succ(Zero)))))) (13) (new_primModNatS01(x2256, x2255, x2254, x2253)=Succ(x2240) & x2256=Succ(x2254) & x2255=Succ(x2253) & Succ(Zero)=x2255 & (\/x2257,x2258:new_primModNatS01(x2256, x2255, x2254, x2253)=Succ(x2257) & x2256=x2254 & x2255=x2253 & Succ(Zero)=x2255 ==> new_quot2(x2258, Neg(Succ(Succ(Succ(Succ(Succ(x2256)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2256)))))))_>=_new_quot1(x2258, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2256)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2256)), Succ(Succ(Zero)))))) ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2256)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2256)))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2256)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2256)), Succ(Succ(Zero)))))) (14) (new_primModNatS02(x2261, x2260)=Succ(x2240) & x2261=Succ(x2259) & x2260=Zero & Succ(Zero)=x2260 ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2264))=Succ(x2240) & x2264=Zero & x2263=Succ(x2262) & Succ(Zero)=x2263 ==> new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2254))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2254))))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2254))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2254))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759)))))) -> new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1759, Zero, x1759, Zero))), new_quot1(x1760, False, x1761, x1762) -> new_quot2(x1760, x1761, x1762, Integer(Pos(Zero)), x1761) which results in the following constraint: (1) (new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1759, Zero, x1759, Zero)))=new_quot1(x1760, False, x1761, x1762) ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1759, Zero, x1759, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS01(x1759, Zero, x1759, Zero))=x2267 & Pos(Zero)=x2268 & new_primEqInt(x2267, x2268)=False ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1759, Zero, x1759, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2267, x2268)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS01(x1759, Zero, x1759, Zero))=Neg(Succ(x2270)) & Pos(Zero)=Pos(x2269) ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1759, Zero, x1759, Zero)))) (4) (False=False & Neg(new_primModNatS01(x1759, Zero, x1759, Zero))=Pos(Succ(x2271)) & Pos(Zero)=Pos(Zero) ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1759, Zero, x1759, Zero)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Zero=x2272 & x1759=x2273 & Zero=x2274 & new_primModNatS01(x1759, x2272, x2273, x2274)=Succ(x2270) ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x1759, Zero, x1759, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1759, x2272, x2273, x2274)=Succ(x2270) which results in the following new constraints: (6) (new_primModNatS02(x2276, x2275)=Succ(x2270) & Zero=x2275 & x2276=Zero & Zero=Zero ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x2276))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2276))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x2276, Zero, x2276, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x2276, Zero, x2276, Zero)))) (7) (new_primModNatS01(x2280, x2279, x2278, x2277)=Succ(x2270) & Zero=x2279 & x2280=Succ(x2278) & Zero=Succ(x2277) & (\/x2281,x2282:new_primModNatS01(x2280, x2279, x2278, x2277)=Succ(x2281) & Zero=x2279 & x2280=x2278 & Zero=x2277 ==> new_quot2(x2282, Neg(Succ(Succ(Succ(Succ(x2280))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2280))))))_>=_new_quot1(x2282, new_primEqInt(Neg(new_primModNatS01(x2280, Zero, x2280, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x2280, Zero, x2280, Zero)))) ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x2280))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2280))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x2280, Zero, x2280, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x2280, Zero, x2280, Zero)))) (8) (new_primModNatS02(x2285, x2284)=Succ(x2270) & Zero=x2284 & x2285=Succ(x2283) & Zero=Zero ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x2285))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2285))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x2285, Zero, x2285, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x2285, Zero, x2285, Zero)))) (9) (Succ(Succ(x2288))=Succ(x2270) & Zero=x2287 & x2288=Zero & Zero=Succ(x2286) ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(x2288))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2288))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(x2288, Zero, x2288, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x2288, Zero, x2288, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Zero=x2289 & new_primModNatS02(x2289, x2275)=Succ(x2270) & Zero=x2275 ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Succ(x2283)=x2296 & new_primModNatS02(x2296, x2284)=Succ(x2270) & Zero=x2284 ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2289, x2275)=Succ(x2270) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2291), Succ(x2290)), Succ(x2290))=Succ(x2270) & Zero=x2291 & Zero=x2290 ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2296, x2284)=Succ(x2270) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x2298), Succ(x2297)), Succ(x2297))=Succ(x2270) & Succ(x2283)=x2298 & Zero=x2297 ==> new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)))) For Pair new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot2(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot1(x1820, False, x1821, x1822) -> new_quot2(x1820, x1821, x1822, Integer(Pos(Zero)), x1821) which results in the following constraint: (1) (new_quot1(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot1(x1820, False, x1821, x1822) ==> new_quot2(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) *(new_quot1(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot2(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *(new_quot1(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot2(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *(new_quot1(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot2(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *(new_quot1(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot2(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *(new_quot1(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot2(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *(new_quot1(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot2(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *(new_quot1(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot2(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *(new_quot1(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot2(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *(new_quot1(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot2(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) *(new_quot1(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot2(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot1(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) *(new_quot1(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) *(new_quot1(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot1(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot2(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) *(new_quot1(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot2(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot1(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) *(new_quot1(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) *(new_quot1(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot1(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot2(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) *(new_quot1(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot2(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot1(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) *(new_quot1(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) *(new_quot1(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot2(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot1(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot2(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) *(new_quot1(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot2(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot1(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) *(new_quot1(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) *(new_quot1(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot2(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_quot2(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) *new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_quot2(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot1(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) *new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_quot2(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) *new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_quot2(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot1(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) *new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_quot2(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot1(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) *new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_quot2(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot1(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) *new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_quot2(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot1(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) *new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_quot2(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot1(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) *new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) *(new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) *(new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1880))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(Succ(Succ(x1880)))), Succ(Succ(x1881)), Succ(Succ(x1880)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1880))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(Succ(Succ(x1880)))), Succ(Succ(x1881)), Succ(Succ(x1880)))))) *(new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1886))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1886))))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1886)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1886)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1886)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1886)), Succ(Zero))))) *(new_quot2(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1866)))))))_>=_new_quot1(x631, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1866))), Succ(Succ(Zero)), Succ(x1866), Zero)))) *new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_quot2(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) *new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot2(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1915))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1915))))))))_>=_new_quot1(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1915))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1915))), Succ(Succ(Zero)))))) *new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) *(new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_quot2(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1944)))))))_>=_new_quot1(x843, new_primEqInt(Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x1944), Zero, Succ(x1944), Zero)))) *new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_quot2(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) *(new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) *(new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1993))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(Succ(Succ(x1993)))), Succ(Succ(x1994)), Succ(Succ(x1993)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1993))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(Succ(Succ(x1993)))), Succ(Succ(x1994)), Succ(Succ(x1993)))))) *(new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1999))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1999))))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1999)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1999)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x1999)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1999)), Succ(Zero))))) *(new_quot2(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1979)))))))_>=_new_quot1(x936, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x1979))), Succ(Succ(Zero)), Succ(x1979), Zero)))) *new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_quot2(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) *new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot2(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2028))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2028))))))))_>=_new_quot1(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2028))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2028))), Succ(Succ(Zero)))))) *new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) *(new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_quot2(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2057)))))))_>=_new_quot1(x1148, new_primEqInt(Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2057), Zero, Succ(x2057), Zero)))) *new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_quot2(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) *(new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) *(new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2106))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(Succ(Succ(x2106)))), Succ(Succ(x2107)), Succ(Succ(x2106)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2106))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(Succ(Succ(x2106)))), Succ(Succ(x2107)), Succ(Succ(x2106)))))) *(new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2112))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2112))))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2112)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2112)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2112)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2112)), Succ(Zero))))) *(new_quot2(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2092)))))))_>=_new_quot1(x1241, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2092))), Succ(Succ(Zero)), Succ(x2092), Zero)))) *new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_quot2(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) *new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot2(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2141))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2141))))))))_>=_new_quot1(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2141))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2141))), Succ(Succ(Zero)))))) *new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) *(new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_quot2(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2170)))))))_>=_new_quot1(x1453, new_primEqInt(Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2170), Zero, Succ(x2170), Zero)))) *new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_quot2(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) *new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) *(new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) *(new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2219))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(Succ(Succ(x2219)))), Succ(Succ(x2220)), Succ(Succ(x2219)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2219))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(Succ(Succ(x2219)))), Succ(Succ(x2220)), Succ(Succ(x2219)))))) *(new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2225))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2225))))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2225)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2225)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x2225)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2225)), Succ(Zero))))) *(new_quot2(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2205)))))))_>=_new_quot1(x1546, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x2205))), Succ(Succ(Zero)), Succ(x2205), Zero)))) *new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_quot2(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) *new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot2(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2254))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2254))))))))_>=_new_quot1(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2254))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2254))), Succ(Succ(Zero)))))) *new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) *(new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_quot2(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2283)))))))_>=_new_quot1(x1758, new_primEqInt(Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2283), Zero, Succ(x2283), Zero)))) *new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_quot2(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1292) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz290, False, vuz94, vuz160) -> new_quot2(vuz290, vuz94, vuz160, Integer(Pos(Zero)), vuz94) new_quot2(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot1(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Pos(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot2(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot1(y0, new_primEqInt(Neg(new_primModNatS01(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(x0, Zero, x0, Zero))) new_quot2(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot1(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz70000)) -> Succ(Zero) new_primModNatS1(Zero, vuz7000) -> Zero new_primModNatS1(Succ(Succ(vuz71000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz71000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz71000)), Succ(vuz70000)) -> new_primModNatS01(vuz71000, vuz70000, vuz71000, vuz70000) new_primModNatS01(vuz155, vuz156, Zero, Zero) -> new_primModNatS02(vuz155, vuz156) new_primModNatS02(vuz155, vuz156) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz155), Succ(vuz156)), Succ(vuz156)) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Succ(vuz1580)) -> new_primModNatS01(vuz155, vuz156, vuz1570, vuz1580) new_primModNatS01(vuz155, vuz156, Succ(vuz1570), Zero) -> new_primModNatS02(vuz155, vuz156) new_primEqInt(Neg(Succ(vuz2600)), Pos(vuz250)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz155, vuz156, Zero, Succ(vuz1580)) -> Succ(Succ(vuz155)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2600)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primEqInt(Neg(Zero), Neg(Zero)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS02(x0, x1) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1293) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="sum",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="sum vuz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl' (+) (fromInt (Pos Zero)) vuz3",fontsize=16,color="burlywood",shape="box"];3311[label="vuz3/vuz30 : vuz31",fontsize=10,color="white",style="solid",shape="box"];4 -> 3311[label="",style="solid", color="burlywood", weight=9]; 3311 -> 5[label="",style="solid", color="burlywood", weight=3]; 3312[label="vuz3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 3312[label="",style="solid", color="burlywood", weight=9]; 3312 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl' (+) (fromInt (Pos Zero)) (vuz30 : vuz31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl' (+) (fromInt (Pos Zero)) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="(foldl' (+) $! (+) fromInt (Pos Zero) vuz30)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3313[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];8 -> 3313[label="",style="solid", color="blue", weight=9]; 3313 -> 10[label="",style="solid", color="blue", weight=3]; 3314[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];8 -> 3314[label="",style="solid", color="blue", weight=9]; 3314 -> 11[label="",style="solid", color="blue", weight=3]; 3315[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];8 -> 3315[label="",style="solid", color="blue", weight=9]; 3315 -> 12[label="",style="solid", color="blue", weight=3]; 3316[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];8 -> 3316[label="",style="solid", color="blue", weight=9]; 3316 -> 13[label="",style="solid", color="blue", weight=3]; 3317[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];8 -> 3317[label="",style="solid", color="blue", weight=9]; 3317 -> 14[label="",style="solid", color="blue", weight=3]; 9[label="((+) fromInt (Pos Zero) vuz30 `seq` foldl' (+) ((+) fromInt (Pos Zero) vuz30))",fontsize=16,color="black",shape="box"];9 -> 15[label="",style="solid", color="black", weight=3]; 10[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];10 -> 16[label="",style="solid", color="black", weight=3]; 11[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];11 -> 17[label="",style="solid", color="black", weight=3]; 12[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];12 -> 18[label="",style="solid", color="black", weight=3]; 13[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];13 -> 19[label="",style="solid", color="black", weight=3]; 14[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];14 -> 20[label="",style="solid", color="black", weight=3]; 15 -> 21[label="",style="dashed", color="red", weight=0]; 15[label="enforceWHNF (WHNF ((+) fromInt (Pos Zero) vuz30)) (foldl' (+) ((+) fromInt (Pos Zero) vuz30)) vuz31",fontsize=16,color="magenta"];15 -> 22[label="",style="dashed", color="magenta", weight=3]; 15 -> 23[label="",style="dashed", color="magenta", weight=3]; 16[label="intToRatio (Pos Zero)",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 17[label="primIntToDouble (Pos Zero)",fontsize=16,color="black",shape="box"];17 -> 25[label="",style="solid", color="black", weight=3]; 18[label="Pos Zero",fontsize=16,color="green",shape="box"];19[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];20[label="primIntToFloat (Pos Zero)",fontsize=16,color="black",shape="box"];20 -> 26[label="",style="solid", color="black", weight=3]; 22[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="blue",shape="box"];3318[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];22 -> 3318[label="",style="solid", color="blue", weight=9]; 3318 -> 27[label="",style="solid", color="blue", weight=3]; 3319[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];22 -> 3319[label="",style="solid", color="blue", weight=9]; 3319 -> 28[label="",style="solid", color="blue", weight=3]; 3320[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];22 -> 3320[label="",style="solid", color="blue", weight=9]; 3320 -> 29[label="",style="solid", color="blue", weight=3]; 3321[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];22 -> 3321[label="",style="solid", color="blue", weight=9]; 3321 -> 30[label="",style="solid", color="blue", weight=3]; 3322[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];22 -> 3322[label="",style="solid", color="blue", weight=9]; 3322 -> 31[label="",style="solid", color="blue", weight=3]; 23[label="vuz31",fontsize=16,color="green",shape="box"];21[label="enforceWHNF (WHNF vuz7) (foldl' (+) vuz7) vuz8",fontsize=16,color="black",shape="triangle"];21 -> 32[label="",style="solid", color="black", weight=3]; 24[label="fromInt (Pos Zero) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];24 -> 33[label="",style="dashed", color="green", weight=3]; 24 -> 34[label="",style="dashed", color="green", weight=3]; 25[label="Double (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];26[label="Float (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];27 -> 35[label="",style="dashed", color="red", weight=0]; 27[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];27 -> 36[label="",style="dashed", color="magenta", weight=3]; 28 -> 37[label="",style="dashed", color="red", weight=0]; 28[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];28 -> 38[label="",style="dashed", color="magenta", weight=3]; 29 -> 39[label="",style="dashed", color="red", weight=0]; 29[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];29 -> 40[label="",style="dashed", color="magenta", weight=3]; 30 -> 41[label="",style="dashed", color="red", weight=0]; 30[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];30 -> 42[label="",style="dashed", color="magenta", weight=3]; 31 -> 43[label="",style="dashed", color="red", weight=0]; 31[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];31 -> 44[label="",style="dashed", color="magenta", weight=3]; 32[label="foldl' (+) vuz7 vuz8",fontsize=16,color="burlywood",shape="box"];3323[label="vuz8/vuz80 : vuz81",fontsize=10,color="white",style="solid",shape="box"];32 -> 3323[label="",style="solid", color="burlywood", weight=9]; 3323 -> 45[label="",style="solid", color="burlywood", weight=3]; 3324[label="vuz8/[]",fontsize=10,color="white",style="solid",shape="box"];32 -> 3324[label="",style="solid", color="burlywood", weight=9]; 3324 -> 46[label="",style="solid", color="burlywood", weight=3]; 33[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3325[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];33 -> 3325[label="",style="solid", color="blue", weight=9]; 3325 -> 47[label="",style="solid", color="blue", weight=3]; 3326[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];33 -> 3326[label="",style="solid", color="blue", weight=9]; 3326 -> 48[label="",style="solid", color="blue", weight=3]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];3327[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];34 -> 3327[label="",style="solid", color="blue", weight=9]; 3327 -> 49[label="",style="solid", color="blue", weight=3]; 3328[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];34 -> 3328[label="",style="solid", color="blue", weight=9]; 3328 -> 50[label="",style="solid", color="blue", weight=3]; 36 -> 10[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];35[label="(+) vuz9 vuz30",fontsize=16,color="burlywood",shape="triangle"];3329[label="vuz9/vuz90 :% vuz91",fontsize=10,color="white",style="solid",shape="box"];35 -> 3329[label="",style="solid", color="burlywood", weight=9]; 3329 -> 51[label="",style="solid", color="burlywood", weight=3]; 38 -> 11[label="",style="dashed", color="red", weight=0]; 38[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];37[label="(+) vuz10 vuz30",fontsize=16,color="black",shape="triangle"];37 -> 52[label="",style="solid", color="black", weight=3]; 40 -> 12[label="",style="dashed", color="red", weight=0]; 40[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];39[label="(+) vuz11 vuz30",fontsize=16,color="black",shape="triangle"];39 -> 53[label="",style="solid", color="black", weight=3]; 42 -> 13[label="",style="dashed", color="red", weight=0]; 42[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];41[label="(+) vuz12 vuz30",fontsize=16,color="burlywood",shape="triangle"];3330[label="vuz12/Integer vuz120",fontsize=10,color="white",style="solid",shape="box"];41 -> 3330[label="",style="solid", color="burlywood", weight=9]; 3330 -> 54[label="",style="solid", color="burlywood", weight=3]; 44 -> 14[label="",style="dashed", color="red", weight=0]; 44[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];43[label="(+) vuz13 vuz30",fontsize=16,color="black",shape="triangle"];43 -> 55[label="",style="solid", color="black", weight=3]; 45[label="foldl' (+) vuz7 (vuz80 : vuz81)",fontsize=16,color="black",shape="box"];45 -> 56[label="",style="solid", color="black", weight=3]; 46[label="foldl' (+) vuz7 []",fontsize=16,color="black",shape="box"];46 -> 57[label="",style="solid", color="black", weight=3]; 47 -> 12[label="",style="dashed", color="red", weight=0]; 47[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];48 -> 13[label="",style="dashed", color="red", weight=0]; 48[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];49[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];49 -> 58[label="",style="solid", color="black", weight=3]; 50[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];50 -> 59[label="",style="solid", color="black", weight=3]; 51[label="(+) vuz90 :% vuz91 vuz30",fontsize=16,color="burlywood",shape="box"];3331[label="vuz30/vuz300 :% vuz301",fontsize=10,color="white",style="solid",shape="box"];51 -> 3331[label="",style="solid", color="burlywood", weight=9]; 3331 -> 60[label="",style="solid", color="burlywood", weight=3]; 52[label="primPlusDouble vuz10 vuz30",fontsize=16,color="burlywood",shape="box"];3332[label="vuz10/Double vuz100 vuz101",fontsize=10,color="white",style="solid",shape="box"];52 -> 3332[label="",style="solid", color="burlywood", weight=9]; 3332 -> 61[label="",style="solid", color="burlywood", weight=3]; 53[label="primPlusInt vuz11 vuz30",fontsize=16,color="burlywood",shape="triangle"];3333[label="vuz11/Pos vuz110",fontsize=10,color="white",style="solid",shape="box"];53 -> 3333[label="",style="solid", color="burlywood", weight=9]; 3333 -> 62[label="",style="solid", color="burlywood", weight=3]; 3334[label="vuz11/Neg vuz110",fontsize=10,color="white",style="solid",shape="box"];53 -> 3334[label="",style="solid", color="burlywood", weight=9]; 3334 -> 63[label="",style="solid", color="burlywood", weight=3]; 54[label="(+) Integer vuz120 vuz30",fontsize=16,color="burlywood",shape="box"];3335[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];54 -> 3335[label="",style="solid", color="burlywood", weight=9]; 3335 -> 64[label="",style="solid", color="burlywood", weight=3]; 55[label="primPlusFloat vuz13 vuz30",fontsize=16,color="burlywood",shape="box"];3336[label="vuz13/Float vuz130 vuz131",fontsize=10,color="white",style="solid",shape="box"];55 -> 3336[label="",style="solid", color="burlywood", weight=9]; 3336 -> 65[label="",style="solid", color="burlywood", weight=3]; 56[label="(foldl' (+) $! (+) vuz7 vuz80)",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 57[label="vuz7",fontsize=16,color="green",shape="box"];58[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];59[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];60[label="(+) vuz90 :% vuz91 vuz300 :% vuz301",fontsize=16,color="black",shape="box"];60 -> 67[label="",style="solid", color="black", weight=3]; 61[label="primPlusDouble (Double vuz100 vuz101) vuz30",fontsize=16,color="burlywood",shape="box"];3337[label="vuz30/Double vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];61 -> 3337[label="",style="solid", color="burlywood", weight=9]; 3337 -> 68[label="",style="solid", color="burlywood", weight=3]; 62[label="primPlusInt (Pos vuz110) vuz30",fontsize=16,color="burlywood",shape="box"];3338[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];62 -> 3338[label="",style="solid", color="burlywood", weight=9]; 3338 -> 69[label="",style="solid", color="burlywood", weight=3]; 3339[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];62 -> 3339[label="",style="solid", color="burlywood", weight=9]; 3339 -> 70[label="",style="solid", color="burlywood", weight=3]; 63[label="primPlusInt (Neg vuz110) vuz30",fontsize=16,color="burlywood",shape="box"];3340[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3340[label="",style="solid", color="burlywood", weight=9]; 3340 -> 71[label="",style="solid", color="burlywood", weight=3]; 3341[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3341[label="",style="solid", color="burlywood", weight=9]; 3341 -> 72[label="",style="solid", color="burlywood", weight=3]; 64[label="(+) Integer vuz120 Integer vuz300",fontsize=16,color="black",shape="box"];64 -> 73[label="",style="solid", color="black", weight=3]; 65[label="primPlusFloat (Float vuz130 vuz131) vuz30",fontsize=16,color="burlywood",shape="box"];3342[label="vuz30/Float vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];65 -> 3342[label="",style="solid", color="burlywood", weight=9]; 3342 -> 74[label="",style="solid", color="burlywood", weight=3]; 66[label="((+) vuz7 vuz80 `seq` foldl' (+) ((+) vuz7 vuz80))",fontsize=16,color="black",shape="box"];66 -> 75[label="",style="solid", color="black", weight=3]; 67[label="reduce (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301)",fontsize=16,color="black",shape="box"];67 -> 76[label="",style="solid", color="black", weight=3]; 68[label="primPlusDouble (Double vuz100 vuz101) (Double vuz300 vuz301)",fontsize=16,color="black",shape="box"];68 -> 77[label="",style="solid", color="black", weight=3]; 69[label="primPlusInt (Pos vuz110) (Pos vuz300)",fontsize=16,color="black",shape="box"];69 -> 78[label="",style="solid", color="black", weight=3]; 70[label="primPlusInt (Pos vuz110) (Neg vuz300)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 71[label="primPlusInt (Neg vuz110) (Pos vuz300)",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 72[label="primPlusInt (Neg vuz110) (Neg vuz300)",fontsize=16,color="black",shape="box"];72 -> 81[label="",style="solid", color="black", weight=3]; 73[label="Integer (primPlusInt vuz120 vuz300)",fontsize=16,color="green",shape="box"];73 -> 82[label="",style="dashed", color="green", weight=3]; 74[label="primPlusFloat (Float vuz130 vuz131) (Float vuz300 vuz301)",fontsize=16,color="black",shape="box"];74 -> 83[label="",style="solid", color="black", weight=3]; 75 -> 21[label="",style="dashed", color="red", weight=0]; 75[label="enforceWHNF (WHNF ((+) vuz7 vuz80)) (foldl' (+) ((+) vuz7 vuz80)) vuz81",fontsize=16,color="magenta"];75 -> 84[label="",style="dashed", color="magenta", weight=3]; 75 -> 85[label="",style="dashed", color="magenta", weight=3]; 76[label="reduce2 (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301)",fontsize=16,color="black",shape="box"];76 -> 86[label="",style="solid", color="black", weight=3]; 77[label="Double (vuz100 * vuz301 + vuz300 * vuz101) (vuz101 * vuz301)",fontsize=16,color="green",shape="box"];77 -> 87[label="",style="dashed", color="green", weight=3]; 77 -> 88[label="",style="dashed", color="green", weight=3]; 78[label="Pos (primPlusNat vuz110 vuz300)",fontsize=16,color="green",shape="box"];78 -> 89[label="",style="dashed", color="green", weight=3]; 79[label="primMinusNat vuz110 vuz300",fontsize=16,color="burlywood",shape="triangle"];3343[label="vuz110/Succ vuz1100",fontsize=10,color="white",style="solid",shape="box"];79 -> 3343[label="",style="solid", color="burlywood", weight=9]; 3343 -> 90[label="",style="solid", color="burlywood", weight=3]; 3344[label="vuz110/Zero",fontsize=10,color="white",style="solid",shape="box"];79 -> 3344[label="",style="solid", color="burlywood", weight=9]; 3344 -> 91[label="",style="solid", color="burlywood", weight=3]; 80 -> 79[label="",style="dashed", color="red", weight=0]; 80[label="primMinusNat vuz300 vuz110",fontsize=16,color="magenta"];80 -> 92[label="",style="dashed", color="magenta", weight=3]; 80 -> 93[label="",style="dashed", color="magenta", weight=3]; 81[label="Neg (primPlusNat vuz110 vuz300)",fontsize=16,color="green",shape="box"];81 -> 94[label="",style="dashed", color="green", weight=3]; 82 -> 53[label="",style="dashed", color="red", weight=0]; 82[label="primPlusInt vuz120 vuz300",fontsize=16,color="magenta"];82 -> 95[label="",style="dashed", color="magenta", weight=3]; 82 -> 96[label="",style="dashed", color="magenta", weight=3]; 83[label="Float (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301)",fontsize=16,color="green",shape="box"];83 -> 97[label="",style="dashed", color="green", weight=3]; 83 -> 98[label="",style="dashed", color="green", weight=3]; 84[label="(+) vuz7 vuz80",fontsize=16,color="blue",shape="box"];3345[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];84 -> 3345[label="",style="solid", color="blue", weight=9]; 3345 -> 99[label="",style="solid", color="blue", weight=3]; 3346[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];84 -> 3346[label="",style="solid", color="blue", weight=9]; 3346 -> 100[label="",style="solid", color="blue", weight=3]; 3347[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 3347[label="",style="solid", color="blue", weight=9]; 3347 -> 101[label="",style="solid", color="blue", weight=3]; 3348[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 3348[label="",style="solid", color="blue", weight=9]; 3348 -> 102[label="",style="solid", color="blue", weight=3]; 3349[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];84 -> 3349[label="",style="solid", color="blue", weight=9]; 3349 -> 103[label="",style="solid", color="blue", weight=3]; 85[label="vuz81",fontsize=16,color="green",shape="box"];86 -> 104[label="",style="dashed", color="red", weight=0]; 86[label="reduce2Reduce1 (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301) (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301) (vuz91 * vuz301 == fromInt (Pos Zero))",fontsize=16,color="magenta"];86 -> 105[label="",style="dashed", color="magenta", weight=3]; 86 -> 106[label="",style="dashed", color="magenta", weight=3]; 86 -> 107[label="",style="dashed", color="magenta", weight=3]; 86 -> 108[label="",style="dashed", color="magenta", weight=3]; 86 -> 109[label="",style="dashed", color="magenta", weight=3]; 87 -> 39[label="",style="dashed", color="red", weight=0]; 87[label="vuz100 * vuz301 + vuz300 * vuz101",fontsize=16,color="magenta"];87 -> 110[label="",style="dashed", color="magenta", weight=3]; 87 -> 111[label="",style="dashed", color="magenta", weight=3]; 88[label="vuz101 * vuz301",fontsize=16,color="black",shape="triangle"];88 -> 112[label="",style="solid", color="black", weight=3]; 89[label="primPlusNat vuz110 vuz300",fontsize=16,color="burlywood",shape="triangle"];3350[label="vuz110/Succ vuz1100",fontsize=10,color="white",style="solid",shape="box"];89 -> 3350[label="",style="solid", color="burlywood", weight=9]; 3350 -> 113[label="",style="solid", color="burlywood", weight=3]; 3351[label="vuz110/Zero",fontsize=10,color="white",style="solid",shape="box"];89 -> 3351[label="",style="solid", color="burlywood", weight=9]; 3351 -> 114[label="",style="solid", color="burlywood", weight=3]; 90[label="primMinusNat (Succ vuz1100) vuz300",fontsize=16,color="burlywood",shape="box"];3352[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];90 -> 3352[label="",style="solid", color="burlywood", weight=9]; 3352 -> 115[label="",style="solid", color="burlywood", weight=3]; 3353[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];90 -> 3353[label="",style="solid", color="burlywood", weight=9]; 3353 -> 116[label="",style="solid", color="burlywood", weight=3]; 91[label="primMinusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3354[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];91 -> 3354[label="",style="solid", color="burlywood", weight=9]; 3354 -> 117[label="",style="solid", color="burlywood", weight=3]; 3355[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];91 -> 3355[label="",style="solid", color="burlywood", weight=9]; 3355 -> 118[label="",style="solid", color="burlywood", weight=3]; 92[label="vuz110",fontsize=16,color="green",shape="box"];93[label="vuz300",fontsize=16,color="green",shape="box"];94 -> 89[label="",style="dashed", color="red", weight=0]; 94[label="primPlusNat vuz110 vuz300",fontsize=16,color="magenta"];94 -> 119[label="",style="dashed", color="magenta", weight=3]; 94 -> 120[label="",style="dashed", color="magenta", weight=3]; 95[label="vuz120",fontsize=16,color="green",shape="box"];96[label="vuz300",fontsize=16,color="green",shape="box"];97 -> 39[label="",style="dashed", color="red", weight=0]; 97[label="vuz130 * vuz301 + vuz300 * vuz131",fontsize=16,color="magenta"];97 -> 121[label="",style="dashed", color="magenta", weight=3]; 97 -> 122[label="",style="dashed", color="magenta", weight=3]; 98 -> 88[label="",style="dashed", color="red", weight=0]; 98[label="vuz131 * vuz301",fontsize=16,color="magenta"];98 -> 123[label="",style="dashed", color="magenta", weight=3]; 98 -> 124[label="",style="dashed", color="magenta", weight=3]; 99 -> 35[label="",style="dashed", color="red", weight=0]; 99[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];99 -> 125[label="",style="dashed", color="magenta", weight=3]; 99 -> 126[label="",style="dashed", color="magenta", weight=3]; 100 -> 37[label="",style="dashed", color="red", weight=0]; 100[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];100 -> 127[label="",style="dashed", color="magenta", weight=3]; 100 -> 128[label="",style="dashed", color="magenta", weight=3]; 101 -> 39[label="",style="dashed", color="red", weight=0]; 101[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];101 -> 129[label="",style="dashed", color="magenta", weight=3]; 101 -> 130[label="",style="dashed", color="magenta", weight=3]; 102 -> 41[label="",style="dashed", color="red", weight=0]; 102[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];102 -> 131[label="",style="dashed", color="magenta", weight=3]; 102 -> 132[label="",style="dashed", color="magenta", weight=3]; 103 -> 43[label="",style="dashed", color="red", weight=0]; 103[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];103 -> 133[label="",style="dashed", color="magenta", weight=3]; 103 -> 134[label="",style="dashed", color="magenta", weight=3]; 105[label="vuz91 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3356[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];105 -> 3356[label="",style="solid", color="blue", weight=9]; 3356 -> 135[label="",style="solid", color="blue", weight=3]; 3357[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];105 -> 3357[label="",style="solid", color="blue", weight=9]; 3357 -> 136[label="",style="solid", color="blue", weight=3]; 106[label="vuz300",fontsize=16,color="green",shape="box"];107[label="vuz90",fontsize=16,color="green",shape="box"];108[label="vuz301",fontsize=16,color="green",shape="box"];109[label="vuz91",fontsize=16,color="green",shape="box"];104[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) vuz24",fontsize=16,color="burlywood",shape="triangle"];3358[label="vuz24/False",fontsize=10,color="white",style="solid",shape="box"];104 -> 3358[label="",style="solid", color="burlywood", weight=9]; 3358 -> 137[label="",style="solid", color="burlywood", weight=3]; 3359[label="vuz24/True",fontsize=10,color="white",style="solid",shape="box"];104 -> 3359[label="",style="solid", color="burlywood", weight=9]; 3359 -> 138[label="",style="solid", color="burlywood", weight=3]; 110 -> 88[label="",style="dashed", color="red", weight=0]; 110[label="vuz100 * vuz301",fontsize=16,color="magenta"];110 -> 139[label="",style="dashed", color="magenta", weight=3]; 111 -> 88[label="",style="dashed", color="red", weight=0]; 111[label="vuz300 * vuz101",fontsize=16,color="magenta"];111 -> 140[label="",style="dashed", color="magenta", weight=3]; 111 -> 141[label="",style="dashed", color="magenta", weight=3]; 112[label="primMulInt vuz101 vuz301",fontsize=16,color="burlywood",shape="triangle"];3360[label="vuz101/Pos vuz1010",fontsize=10,color="white",style="solid",shape="box"];112 -> 3360[label="",style="solid", color="burlywood", weight=9]; 3360 -> 142[label="",style="solid", color="burlywood", weight=3]; 3361[label="vuz101/Neg vuz1010",fontsize=10,color="white",style="solid",shape="box"];112 -> 3361[label="",style="solid", color="burlywood", weight=9]; 3361 -> 143[label="",style="solid", color="burlywood", weight=3]; 113[label="primPlusNat (Succ vuz1100) vuz300",fontsize=16,color="burlywood",shape="box"];3362[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];113 -> 3362[label="",style="solid", color="burlywood", weight=9]; 3362 -> 144[label="",style="solid", color="burlywood", weight=3]; 3363[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];113 -> 3363[label="",style="solid", color="burlywood", weight=9]; 3363 -> 145[label="",style="solid", color="burlywood", weight=3]; 114[label="primPlusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3364[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];114 -> 3364[label="",style="solid", color="burlywood", weight=9]; 3364 -> 146[label="",style="solid", color="burlywood", weight=3]; 3365[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];114 -> 3365[label="",style="solid", color="burlywood", weight=9]; 3365 -> 147[label="",style="solid", color="burlywood", weight=3]; 115[label="primMinusNat (Succ vuz1100) (Succ vuz3000)",fontsize=16,color="black",shape="box"];115 -> 148[label="",style="solid", color="black", weight=3]; 116[label="primMinusNat (Succ vuz1100) Zero",fontsize=16,color="black",shape="box"];116 -> 149[label="",style="solid", color="black", weight=3]; 117[label="primMinusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];117 -> 150[label="",style="solid", color="black", weight=3]; 118[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];118 -> 151[label="",style="solid", color="black", weight=3]; 119[label="vuz300",fontsize=16,color="green",shape="box"];120[label="vuz110",fontsize=16,color="green",shape="box"];121 -> 88[label="",style="dashed", color="red", weight=0]; 121[label="vuz130 * vuz301",fontsize=16,color="magenta"];121 -> 152[label="",style="dashed", color="magenta", weight=3]; 121 -> 153[label="",style="dashed", color="magenta", weight=3]; 122 -> 88[label="",style="dashed", color="red", weight=0]; 122[label="vuz300 * vuz131",fontsize=16,color="magenta"];122 -> 154[label="",style="dashed", color="magenta", weight=3]; 122 -> 155[label="",style="dashed", color="magenta", weight=3]; 123[label="vuz301",fontsize=16,color="green",shape="box"];124[label="vuz131",fontsize=16,color="green",shape="box"];125[label="vuz80",fontsize=16,color="green",shape="box"];126[label="vuz7",fontsize=16,color="green",shape="box"];127[label="vuz80",fontsize=16,color="green",shape="box"];128[label="vuz7",fontsize=16,color="green",shape="box"];129[label="vuz7",fontsize=16,color="green",shape="box"];130[label="vuz80",fontsize=16,color="green",shape="box"];131[label="vuz80",fontsize=16,color="green",shape="box"];132[label="vuz7",fontsize=16,color="green",shape="box"];133[label="vuz80",fontsize=16,color="green",shape="box"];134[label="vuz7",fontsize=16,color="green",shape="box"];135 -> 156[label="",style="dashed", color="red", weight=0]; 135[label="vuz91 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];135 -> 157[label="",style="dashed", color="magenta", weight=3]; 135 -> 158[label="",style="dashed", color="magenta", weight=3]; 136 -> 159[label="",style="dashed", color="red", weight=0]; 136[label="vuz91 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];136 -> 160[label="",style="dashed", color="magenta", weight=3]; 137[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) False",fontsize=16,color="black",shape="box"];137 -> 161[label="",style="solid", color="black", weight=3]; 138[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];138 -> 162[label="",style="solid", color="black", weight=3]; 139[label="vuz100",fontsize=16,color="green",shape="box"];140[label="vuz101",fontsize=16,color="green",shape="box"];141[label="vuz300",fontsize=16,color="green",shape="box"];142[label="primMulInt (Pos vuz1010) vuz301",fontsize=16,color="burlywood",shape="box"];3366[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];142 -> 3366[label="",style="solid", color="burlywood", weight=9]; 3366 -> 163[label="",style="solid", color="burlywood", weight=3]; 3367[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];142 -> 3367[label="",style="solid", color="burlywood", weight=9]; 3367 -> 164[label="",style="solid", color="burlywood", weight=3]; 143[label="primMulInt (Neg vuz1010) vuz301",fontsize=16,color="burlywood",shape="box"];3368[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];143 -> 3368[label="",style="solid", color="burlywood", weight=9]; 3368 -> 165[label="",style="solid", color="burlywood", weight=3]; 3369[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];143 -> 3369[label="",style="solid", color="burlywood", weight=9]; 3369 -> 166[label="",style="solid", color="burlywood", weight=3]; 144[label="primPlusNat (Succ vuz1100) (Succ vuz3000)",fontsize=16,color="black",shape="box"];144 -> 167[label="",style="solid", color="black", weight=3]; 145[label="primPlusNat (Succ vuz1100) Zero",fontsize=16,color="black",shape="box"];145 -> 168[label="",style="solid", color="black", weight=3]; 146[label="primPlusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];146 -> 169[label="",style="solid", color="black", weight=3]; 147[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];147 -> 170[label="",style="solid", color="black", weight=3]; 148 -> 79[label="",style="dashed", color="red", weight=0]; 148[label="primMinusNat vuz1100 vuz3000",fontsize=16,color="magenta"];148 -> 171[label="",style="dashed", color="magenta", weight=3]; 148 -> 172[label="",style="dashed", color="magenta", weight=3]; 149[label="Pos (Succ vuz1100)",fontsize=16,color="green",shape="box"];150[label="Neg (Succ vuz3000)",fontsize=16,color="green",shape="box"];151[label="Pos Zero",fontsize=16,color="green",shape="box"];152[label="vuz301",fontsize=16,color="green",shape="box"];153[label="vuz130",fontsize=16,color="green",shape="box"];154[label="vuz131",fontsize=16,color="green",shape="box"];155[label="vuz300",fontsize=16,color="green",shape="box"];157 -> 88[label="",style="dashed", color="red", weight=0]; 157[label="vuz91 * vuz301",fontsize=16,color="magenta"];157 -> 173[label="",style="dashed", color="magenta", weight=3]; 157 -> 174[label="",style="dashed", color="magenta", weight=3]; 158 -> 12[label="",style="dashed", color="red", weight=0]; 158[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];156[label="vuz26 == vuz25",fontsize=16,color="black",shape="triangle"];156 -> 175[label="",style="solid", color="black", weight=3]; 160 -> 13[label="",style="dashed", color="red", weight=0]; 160[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];159[label="vuz91 * vuz301 == vuz27",fontsize=16,color="burlywood",shape="triangle"];3370[label="vuz91/Integer vuz910",fontsize=10,color="white",style="solid",shape="box"];159 -> 3370[label="",style="solid", color="burlywood", weight=9]; 3370 -> 176[label="",style="solid", color="burlywood", weight=3]; 161[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) otherwise",fontsize=16,color="black",shape="box"];161 -> 177[label="",style="solid", color="black", weight=3]; 162[label="error []",fontsize=16,color="black",shape="box"];162 -> 178[label="",style="solid", color="black", weight=3]; 163[label="primMulInt (Pos vuz1010) (Pos vuz3010)",fontsize=16,color="black",shape="box"];163 -> 179[label="",style="solid", color="black", weight=3]; 164[label="primMulInt (Pos vuz1010) (Neg vuz3010)",fontsize=16,color="black",shape="box"];164 -> 180[label="",style="solid", color="black", weight=3]; 165[label="primMulInt (Neg vuz1010) (Pos vuz3010)",fontsize=16,color="black",shape="box"];165 -> 181[label="",style="solid", color="black", weight=3]; 166[label="primMulInt (Neg vuz1010) (Neg vuz3010)",fontsize=16,color="black",shape="box"];166 -> 182[label="",style="solid", color="black", weight=3]; 167[label="Succ (Succ (primPlusNat vuz1100 vuz3000))",fontsize=16,color="green",shape="box"];167 -> 183[label="",style="dashed", color="green", weight=3]; 168[label="Succ vuz1100",fontsize=16,color="green",shape="box"];169[label="Succ vuz3000",fontsize=16,color="green",shape="box"];170[label="Zero",fontsize=16,color="green",shape="box"];171[label="vuz3000",fontsize=16,color="green",shape="box"];172[label="vuz1100",fontsize=16,color="green",shape="box"];173[label="vuz301",fontsize=16,color="green",shape="box"];174[label="vuz91",fontsize=16,color="green",shape="box"];175[label="primEqInt vuz26 vuz25",fontsize=16,color="burlywood",shape="triangle"];3371[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];175 -> 3371[label="",style="solid", color="burlywood", weight=9]; 3371 -> 184[label="",style="solid", color="burlywood", weight=3]; 3372[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];175 -> 3372[label="",style="solid", color="burlywood", weight=9]; 3372 -> 185[label="",style="solid", color="burlywood", weight=3]; 176[label="Integer vuz910 * vuz301 == vuz27",fontsize=16,color="burlywood",shape="box"];3373[label="vuz301/Integer vuz3010",fontsize=10,color="white",style="solid",shape="box"];176 -> 3373[label="",style="solid", color="burlywood", weight=9]; 3373 -> 186[label="",style="solid", color="burlywood", weight=3]; 177[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];177 -> 187[label="",style="solid", color="black", weight=3]; 178[label="error []",fontsize=16,color="red",shape="box"];179[label="Pos (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];179 -> 188[label="",style="dashed", color="green", weight=3]; 180[label="Neg (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];180 -> 189[label="",style="dashed", color="green", weight=3]; 181[label="Neg (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];181 -> 190[label="",style="dashed", color="green", weight=3]; 182[label="Pos (primMulNat vuz1010 vuz3010)",fontsize=16,color="green",shape="box"];182 -> 191[label="",style="dashed", color="green", weight=3]; 183 -> 89[label="",style="dashed", color="red", weight=0]; 183[label="primPlusNat vuz1100 vuz3000",fontsize=16,color="magenta"];183 -> 192[label="",style="dashed", color="magenta", weight=3]; 183 -> 193[label="",style="dashed", color="magenta", weight=3]; 184[label="primEqInt (Pos vuz260) vuz25",fontsize=16,color="burlywood",shape="box"];3374[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];184 -> 3374[label="",style="solid", color="burlywood", weight=9]; 3374 -> 194[label="",style="solid", color="burlywood", weight=3]; 3375[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];184 -> 3375[label="",style="solid", color="burlywood", weight=9]; 3375 -> 195[label="",style="solid", color="burlywood", weight=3]; 185[label="primEqInt (Neg vuz260) vuz25",fontsize=16,color="burlywood",shape="box"];3376[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];185 -> 3376[label="",style="solid", color="burlywood", weight=9]; 3376 -> 196[label="",style="solid", color="burlywood", weight=3]; 3377[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];185 -> 3377[label="",style="solid", color="burlywood", weight=9]; 3377 -> 197[label="",style="solid", color="burlywood", weight=3]; 186[label="Integer vuz910 * Integer vuz3010 == vuz27",fontsize=16,color="black",shape="box"];186 -> 198[label="",style="solid", color="black", weight=3]; 187[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) :% (vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21))",fontsize=16,color="green",shape="box"];187 -> 199[label="",style="dashed", color="green", weight=3]; 187 -> 200[label="",style="dashed", color="green", weight=3]; 188[label="primMulNat vuz1010 vuz3010",fontsize=16,color="burlywood",shape="triangle"];3378[label="vuz1010/Succ vuz10100",fontsize=10,color="white",style="solid",shape="box"];188 -> 3378[label="",style="solid", color="burlywood", weight=9]; 3378 -> 201[label="",style="solid", color="burlywood", weight=3]; 3379[label="vuz1010/Zero",fontsize=10,color="white",style="solid",shape="box"];188 -> 3379[label="",style="solid", color="burlywood", weight=9]; 3379 -> 202[label="",style="solid", color="burlywood", weight=3]; 189 -> 188[label="",style="dashed", color="red", weight=0]; 189[label="primMulNat vuz1010 vuz3010",fontsize=16,color="magenta"];189 -> 203[label="",style="dashed", color="magenta", weight=3]; 190 -> 188[label="",style="dashed", color="red", weight=0]; 190[label="primMulNat vuz1010 vuz3010",fontsize=16,color="magenta"];190 -> 204[label="",style="dashed", color="magenta", weight=3]; 191 -> 188[label="",style="dashed", color="red", weight=0]; 191[label="primMulNat vuz1010 vuz3010",fontsize=16,color="magenta"];191 -> 205[label="",style="dashed", color="magenta", weight=3]; 191 -> 206[label="",style="dashed", color="magenta", weight=3]; 192[label="vuz3000",fontsize=16,color="green",shape="box"];193[label="vuz1100",fontsize=16,color="green",shape="box"];194[label="primEqInt (Pos (Succ vuz2600)) vuz25",fontsize=16,color="burlywood",shape="box"];3380[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];194 -> 3380[label="",style="solid", color="burlywood", weight=9]; 3380 -> 207[label="",style="solid", color="burlywood", weight=3]; 3381[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];194 -> 3381[label="",style="solid", color="burlywood", weight=9]; 3381 -> 208[label="",style="solid", color="burlywood", weight=3]; 195[label="primEqInt (Pos Zero) vuz25",fontsize=16,color="burlywood",shape="box"];3382[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];195 -> 3382[label="",style="solid", color="burlywood", weight=9]; 3382 -> 209[label="",style="solid", color="burlywood", weight=3]; 3383[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];195 -> 3383[label="",style="solid", color="burlywood", weight=9]; 3383 -> 210[label="",style="solid", color="burlywood", weight=3]; 196[label="primEqInt (Neg (Succ vuz2600)) vuz25",fontsize=16,color="burlywood",shape="box"];3384[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];196 -> 3384[label="",style="solid", color="burlywood", weight=9]; 3384 -> 211[label="",style="solid", color="burlywood", weight=3]; 3385[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];196 -> 3385[label="",style="solid", color="burlywood", weight=9]; 3385 -> 212[label="",style="solid", color="burlywood", weight=3]; 197[label="primEqInt (Neg Zero) vuz25",fontsize=16,color="burlywood",shape="box"];3386[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];197 -> 3386[label="",style="solid", color="burlywood", weight=9]; 3386 -> 213[label="",style="solid", color="burlywood", weight=3]; 3387[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];197 -> 3387[label="",style="solid", color="burlywood", weight=9]; 3387 -> 214[label="",style="solid", color="burlywood", weight=3]; 198 -> 215[label="",style="dashed", color="red", weight=0]; 198[label="Integer (primMulInt vuz910 vuz3010) == vuz27",fontsize=16,color="magenta"];198 -> 216[label="",style="dashed", color="magenta", weight=3]; 199[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3388[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];199 -> 3388[label="",style="solid", color="blue", weight=9]; 3388 -> 217[label="",style="solid", color="blue", weight=3]; 3389[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];199 -> 3389[label="",style="solid", color="blue", weight=9]; 3389 -> 218[label="",style="solid", color="blue", weight=3]; 200[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3390[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];200 -> 3390[label="",style="solid", color="blue", weight=9]; 3390 -> 219[label="",style="solid", color="blue", weight=3]; 3391[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];200 -> 3391[label="",style="solid", color="blue", weight=9]; 3391 -> 220[label="",style="solid", color="blue", weight=3]; 201[label="primMulNat (Succ vuz10100) vuz3010",fontsize=16,color="burlywood",shape="box"];3392[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];201 -> 3392[label="",style="solid", color="burlywood", weight=9]; 3392 -> 221[label="",style="solid", color="burlywood", weight=3]; 3393[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];201 -> 3393[label="",style="solid", color="burlywood", weight=9]; 3393 -> 222[label="",style="solid", color="burlywood", weight=3]; 202[label="primMulNat Zero vuz3010",fontsize=16,color="burlywood",shape="box"];3394[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];202 -> 3394[label="",style="solid", color="burlywood", weight=9]; 3394 -> 223[label="",style="solid", color="burlywood", weight=3]; 3395[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];202 -> 3395[label="",style="solid", color="burlywood", weight=9]; 3395 -> 224[label="",style="solid", color="burlywood", weight=3]; 203[label="vuz3010",fontsize=16,color="green",shape="box"];204[label="vuz1010",fontsize=16,color="green",shape="box"];205[label="vuz3010",fontsize=16,color="green",shape="box"];206[label="vuz1010",fontsize=16,color="green",shape="box"];207[label="primEqInt (Pos (Succ vuz2600)) (Pos vuz250)",fontsize=16,color="burlywood",shape="box"];3396[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];207 -> 3396[label="",style="solid", color="burlywood", weight=9]; 3396 -> 225[label="",style="solid", color="burlywood", weight=3]; 3397[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];207 -> 3397[label="",style="solid", color="burlywood", weight=9]; 3397 -> 226[label="",style="solid", color="burlywood", weight=3]; 208[label="primEqInt (Pos (Succ vuz2600)) (Neg vuz250)",fontsize=16,color="black",shape="box"];208 -> 227[label="",style="solid", color="black", weight=3]; 209[label="primEqInt (Pos Zero) (Pos vuz250)",fontsize=16,color="burlywood",shape="box"];3398[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];209 -> 3398[label="",style="solid", color="burlywood", weight=9]; 3398 -> 228[label="",style="solid", color="burlywood", weight=3]; 3399[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];209 -> 3399[label="",style="solid", color="burlywood", weight=9]; 3399 -> 229[label="",style="solid", color="burlywood", weight=3]; 210[label="primEqInt (Pos Zero) (Neg vuz250)",fontsize=16,color="burlywood",shape="box"];3400[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];210 -> 3400[label="",style="solid", color="burlywood", weight=9]; 3400 -> 230[label="",style="solid", color="burlywood", weight=3]; 3401[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];210 -> 3401[label="",style="solid", color="burlywood", weight=9]; 3401 -> 231[label="",style="solid", color="burlywood", weight=3]; 211[label="primEqInt (Neg (Succ vuz2600)) (Pos vuz250)",fontsize=16,color="black",shape="box"];211 -> 232[label="",style="solid", color="black", weight=3]; 212[label="primEqInt (Neg (Succ vuz2600)) (Neg vuz250)",fontsize=16,color="burlywood",shape="box"];3402[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];212 -> 3402[label="",style="solid", color="burlywood", weight=9]; 3402 -> 233[label="",style="solid", color="burlywood", weight=3]; 3403[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];212 -> 3403[label="",style="solid", color="burlywood", weight=9]; 3403 -> 234[label="",style="solid", color="burlywood", weight=3]; 213[label="primEqInt (Neg Zero) (Pos vuz250)",fontsize=16,color="burlywood",shape="box"];3404[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];213 -> 3404[label="",style="solid", color="burlywood", weight=9]; 3404 -> 235[label="",style="solid", color="burlywood", weight=3]; 3405[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];213 -> 3405[label="",style="solid", color="burlywood", weight=9]; 3405 -> 236[label="",style="solid", color="burlywood", weight=3]; 214[label="primEqInt (Neg Zero) (Neg vuz250)",fontsize=16,color="burlywood",shape="box"];3406[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];214 -> 3406[label="",style="solid", color="burlywood", weight=9]; 3406 -> 237[label="",style="solid", color="burlywood", weight=3]; 3407[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];214 -> 3407[label="",style="solid", color="burlywood", weight=9]; 3407 -> 238[label="",style="solid", color="burlywood", weight=3]; 216 -> 112[label="",style="dashed", color="red", weight=0]; 216[label="primMulInt vuz910 vuz3010",fontsize=16,color="magenta"];216 -> 239[label="",style="dashed", color="magenta", weight=3]; 216 -> 240[label="",style="dashed", color="magenta", weight=3]; 215[label="Integer vuz28 == vuz27",fontsize=16,color="burlywood",shape="triangle"];3408[label="vuz27/Integer vuz270",fontsize=10,color="white",style="solid",shape="box"];215 -> 3408[label="",style="solid", color="burlywood", weight=9]; 3408 -> 241[label="",style="solid", color="burlywood", weight=3]; 217 -> 242[label="",style="dashed", color="red", weight=0]; 217[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];217 -> 243[label="",style="dashed", color="magenta", weight=3]; 217 -> 244[label="",style="dashed", color="magenta", weight=3]; 218 -> 247[label="",style="dashed", color="red", weight=0]; 218[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];218 -> 248[label="",style="dashed", color="magenta", weight=3]; 218 -> 249[label="",style="dashed", color="magenta", weight=3]; 218 -> 250[label="",style="dashed", color="magenta", weight=3]; 219 -> 242[label="",style="dashed", color="red", weight=0]; 219[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];219 -> 245[label="",style="dashed", color="magenta", weight=3]; 219 -> 246[label="",style="dashed", color="magenta", weight=3]; 220 -> 247[label="",style="dashed", color="red", weight=0]; 220[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];220 -> 251[label="",style="dashed", color="magenta", weight=3]; 220 -> 252[label="",style="dashed", color="magenta", weight=3]; 220 -> 253[label="",style="dashed", color="magenta", weight=3]; 221[label="primMulNat (Succ vuz10100) (Succ vuz30100)",fontsize=16,color="black",shape="box"];221 -> 254[label="",style="solid", color="black", weight=3]; 222[label="primMulNat (Succ vuz10100) Zero",fontsize=16,color="black",shape="box"];222 -> 255[label="",style="solid", color="black", weight=3]; 223[label="primMulNat Zero (Succ vuz30100)",fontsize=16,color="black",shape="box"];223 -> 256[label="",style="solid", color="black", weight=3]; 224[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];224 -> 257[label="",style="solid", color="black", weight=3]; 225[label="primEqInt (Pos (Succ vuz2600)) (Pos (Succ vuz2500))",fontsize=16,color="black",shape="box"];225 -> 258[label="",style="solid", color="black", weight=3]; 226[label="primEqInt (Pos (Succ vuz2600)) (Pos Zero)",fontsize=16,color="black",shape="box"];226 -> 259[label="",style="solid", color="black", weight=3]; 227[label="False",fontsize=16,color="green",shape="box"];228[label="primEqInt (Pos Zero) (Pos (Succ vuz2500))",fontsize=16,color="black",shape="box"];228 -> 260[label="",style="solid", color="black", weight=3]; 229[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];229 -> 261[label="",style="solid", color="black", weight=3]; 230[label="primEqInt (Pos Zero) (Neg (Succ vuz2500))",fontsize=16,color="black",shape="box"];230 -> 262[label="",style="solid", color="black", weight=3]; 231[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];231 -> 263[label="",style="solid", color="black", weight=3]; 232[label="False",fontsize=16,color="green",shape="box"];233[label="primEqInt (Neg (Succ vuz2600)) (Neg (Succ vuz2500))",fontsize=16,color="black",shape="box"];233 -> 264[label="",style="solid", color="black", weight=3]; 234[label="primEqInt (Neg (Succ vuz2600)) (Neg Zero)",fontsize=16,color="black",shape="box"];234 -> 265[label="",style="solid", color="black", weight=3]; 235[label="primEqInt (Neg Zero) (Pos (Succ vuz2500))",fontsize=16,color="black",shape="box"];235 -> 266[label="",style="solid", color="black", weight=3]; 236[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];236 -> 267[label="",style="solid", color="black", weight=3]; 237[label="primEqInt (Neg Zero) (Neg (Succ vuz2500))",fontsize=16,color="black",shape="box"];237 -> 268[label="",style="solid", color="black", weight=3]; 238[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];238 -> 269[label="",style="solid", color="black", weight=3]; 239[label="vuz3010",fontsize=16,color="green",shape="box"];240[label="vuz910",fontsize=16,color="green",shape="box"];241[label="Integer vuz28 == Integer vuz270",fontsize=16,color="black",shape="box"];241 -> 270[label="",style="solid", color="black", weight=3]; 243 -> 41[label="",style="dashed", color="red", weight=0]; 243[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];243 -> 271[label="",style="dashed", color="magenta", weight=3]; 243 -> 272[label="",style="dashed", color="magenta", weight=3]; 244 -> 41[label="",style="dashed", color="red", weight=0]; 244[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];244 -> 273[label="",style="dashed", color="magenta", weight=3]; 244 -> 274[label="",style="dashed", color="magenta", weight=3]; 242[label="vuz29 `quot` reduce2D vuz30 (vuz23 * vuz21)",fontsize=16,color="burlywood",shape="triangle"];3409[label="vuz29/Integer vuz290",fontsize=10,color="white",style="solid",shape="box"];242 -> 3409[label="",style="solid", color="burlywood", weight=9]; 3409 -> 275[label="",style="solid", color="burlywood", weight=3]; 248 -> 39[label="",style="dashed", color="red", weight=0]; 248[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];248 -> 276[label="",style="dashed", color="magenta", weight=3]; 248 -> 277[label="",style="dashed", color="magenta", weight=3]; 249 -> 39[label="",style="dashed", color="red", weight=0]; 249[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];249 -> 278[label="",style="dashed", color="magenta", weight=3]; 249 -> 279[label="",style="dashed", color="magenta", weight=3]; 250 -> 88[label="",style="dashed", color="red", weight=0]; 250[label="vuz23 * vuz21",fontsize=16,color="magenta"];250 -> 280[label="",style="dashed", color="magenta", weight=3]; 250 -> 281[label="",style="dashed", color="magenta", weight=3]; 247[label="vuz31 `quot` reduce2D vuz33 vuz32",fontsize=16,color="black",shape="triangle"];247 -> 282[label="",style="solid", color="black", weight=3]; 245 -> 41[label="",style="dashed", color="red", weight=0]; 245[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];245 -> 283[label="",style="dashed", color="magenta", weight=3]; 245 -> 284[label="",style="dashed", color="magenta", weight=3]; 246[label="vuz23 * vuz21",fontsize=16,color="burlywood",shape="triangle"];3410[label="vuz23/Integer vuz230",fontsize=10,color="white",style="solid",shape="box"];246 -> 3410[label="",style="solid", color="burlywood", weight=9]; 3410 -> 285[label="",style="solid", color="burlywood", weight=3]; 251 -> 39[label="",style="dashed", color="red", weight=0]; 251[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];251 -> 286[label="",style="dashed", color="magenta", weight=3]; 251 -> 287[label="",style="dashed", color="magenta", weight=3]; 252 -> 88[label="",style="dashed", color="red", weight=0]; 252[label="vuz23 * vuz21",fontsize=16,color="magenta"];252 -> 288[label="",style="dashed", color="magenta", weight=3]; 252 -> 289[label="",style="dashed", color="magenta", weight=3]; 253 -> 88[label="",style="dashed", color="red", weight=0]; 253[label="vuz23 * vuz21",fontsize=16,color="magenta"];253 -> 290[label="",style="dashed", color="magenta", weight=3]; 253 -> 291[label="",style="dashed", color="magenta", weight=3]; 254 -> 89[label="",style="dashed", color="red", weight=0]; 254[label="primPlusNat (primMulNat vuz10100 (Succ vuz30100)) (Succ vuz30100)",fontsize=16,color="magenta"];254 -> 292[label="",style="dashed", color="magenta", weight=3]; 254 -> 293[label="",style="dashed", color="magenta", weight=3]; 255[label="Zero",fontsize=16,color="green",shape="box"];256[label="Zero",fontsize=16,color="green",shape="box"];257[label="Zero",fontsize=16,color="green",shape="box"];258[label="primEqNat vuz2600 vuz2500",fontsize=16,color="burlywood",shape="triangle"];3411[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];258 -> 3411[label="",style="solid", color="burlywood", weight=9]; 3411 -> 294[label="",style="solid", color="burlywood", weight=3]; 3412[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 3412[label="",style="solid", color="burlywood", weight=9]; 3412 -> 295[label="",style="solid", color="burlywood", weight=3]; 259[label="False",fontsize=16,color="green",shape="box"];260[label="False",fontsize=16,color="green",shape="box"];261[label="True",fontsize=16,color="green",shape="box"];262[label="False",fontsize=16,color="green",shape="box"];263[label="True",fontsize=16,color="green",shape="box"];264 -> 258[label="",style="dashed", color="red", weight=0]; 264[label="primEqNat vuz2600 vuz2500",fontsize=16,color="magenta"];264 -> 296[label="",style="dashed", color="magenta", weight=3]; 264 -> 297[label="",style="dashed", color="magenta", weight=3]; 265[label="False",fontsize=16,color="green",shape="box"];266[label="False",fontsize=16,color="green",shape="box"];267[label="True",fontsize=16,color="green",shape="box"];268[label="False",fontsize=16,color="green",shape="box"];269[label="True",fontsize=16,color="green",shape="box"];270 -> 175[label="",style="dashed", color="red", weight=0]; 270[label="primEqInt vuz28 vuz270",fontsize=16,color="magenta"];270 -> 298[label="",style="dashed", color="magenta", weight=3]; 270 -> 299[label="",style="dashed", color="magenta", weight=3]; 271 -> 246[label="",style="dashed", color="red", weight=0]; 271[label="vuz22 * vuz23",fontsize=16,color="magenta"];271 -> 300[label="",style="dashed", color="magenta", weight=3]; 271 -> 301[label="",style="dashed", color="magenta", weight=3]; 272 -> 246[label="",style="dashed", color="red", weight=0]; 272[label="vuz20 * vuz21",fontsize=16,color="magenta"];272 -> 302[label="",style="dashed", color="magenta", weight=3]; 273 -> 246[label="",style="dashed", color="red", weight=0]; 273[label="vuz22 * vuz23",fontsize=16,color="magenta"];273 -> 303[label="",style="dashed", color="magenta", weight=3]; 273 -> 304[label="",style="dashed", color="magenta", weight=3]; 274 -> 246[label="",style="dashed", color="red", weight=0]; 274[label="vuz20 * vuz21",fontsize=16,color="magenta"];274 -> 305[label="",style="dashed", color="magenta", weight=3]; 275[label="Integer vuz290 `quot` reduce2D vuz30 (vuz23 * vuz21)",fontsize=16,color="black",shape="box"];275 -> 306[label="",style="solid", color="black", weight=3]; 276 -> 88[label="",style="dashed", color="red", weight=0]; 276[label="vuz20 * vuz21",fontsize=16,color="magenta"];276 -> 307[label="",style="dashed", color="magenta", weight=3]; 276 -> 308[label="",style="dashed", color="magenta", weight=3]; 277 -> 88[label="",style="dashed", color="red", weight=0]; 277[label="vuz22 * vuz23",fontsize=16,color="magenta"];277 -> 309[label="",style="dashed", color="magenta", weight=3]; 277 -> 310[label="",style="dashed", color="magenta", weight=3]; 278 -> 88[label="",style="dashed", color="red", weight=0]; 278[label="vuz20 * vuz21",fontsize=16,color="magenta"];278 -> 311[label="",style="dashed", color="magenta", weight=3]; 278 -> 312[label="",style="dashed", color="magenta", weight=3]; 279 -> 88[label="",style="dashed", color="red", weight=0]; 279[label="vuz22 * vuz23",fontsize=16,color="magenta"];279 -> 313[label="",style="dashed", color="magenta", weight=3]; 279 -> 314[label="",style="dashed", color="magenta", weight=3]; 280[label="vuz21",fontsize=16,color="green",shape="box"];281[label="vuz23",fontsize=16,color="green",shape="box"];282[label="primQuotInt vuz31 (reduce2D vuz33 vuz32)",fontsize=16,color="burlywood",shape="box"];3413[label="vuz31/Pos vuz310",fontsize=10,color="white",style="solid",shape="box"];282 -> 3413[label="",style="solid", color="burlywood", weight=9]; 3413 -> 315[label="",style="solid", color="burlywood", weight=3]; 3414[label="vuz31/Neg vuz310",fontsize=10,color="white",style="solid",shape="box"];282 -> 3414[label="",style="solid", color="burlywood", weight=9]; 3414 -> 316[label="",style="solid", color="burlywood", weight=3]; 283 -> 246[label="",style="dashed", color="red", weight=0]; 283[label="vuz22 * vuz23",fontsize=16,color="magenta"];283 -> 317[label="",style="dashed", color="magenta", weight=3]; 283 -> 318[label="",style="dashed", color="magenta", weight=3]; 284 -> 246[label="",style="dashed", color="red", weight=0]; 284[label="vuz20 * vuz21",fontsize=16,color="magenta"];284 -> 319[label="",style="dashed", color="magenta", weight=3]; 285[label="Integer vuz230 * vuz21",fontsize=16,color="burlywood",shape="box"];3415[label="vuz21/Integer vuz210",fontsize=10,color="white",style="solid",shape="box"];285 -> 3415[label="",style="solid", color="burlywood", weight=9]; 3415 -> 320[label="",style="solid", color="burlywood", weight=3]; 286 -> 88[label="",style="dashed", color="red", weight=0]; 286[label="vuz20 * vuz21",fontsize=16,color="magenta"];286 -> 321[label="",style="dashed", color="magenta", weight=3]; 286 -> 322[label="",style="dashed", color="magenta", weight=3]; 287 -> 88[label="",style="dashed", color="red", weight=0]; 287[label="vuz22 * vuz23",fontsize=16,color="magenta"];287 -> 323[label="",style="dashed", color="magenta", weight=3]; 287 -> 324[label="",style="dashed", color="magenta", weight=3]; 288[label="vuz21",fontsize=16,color="green",shape="box"];289[label="vuz23",fontsize=16,color="green",shape="box"];290[label="vuz21",fontsize=16,color="green",shape="box"];291[label="vuz23",fontsize=16,color="green",shape="box"];292[label="Succ vuz30100",fontsize=16,color="green",shape="box"];293 -> 188[label="",style="dashed", color="red", weight=0]; 293[label="primMulNat vuz10100 (Succ vuz30100)",fontsize=16,color="magenta"];293 -> 325[label="",style="dashed", color="magenta", weight=3]; 293 -> 326[label="",style="dashed", color="magenta", weight=3]; 294[label="primEqNat (Succ vuz26000) vuz2500",fontsize=16,color="burlywood",shape="box"];3416[label="vuz2500/Succ vuz25000",fontsize=10,color="white",style="solid",shape="box"];294 -> 3416[label="",style="solid", color="burlywood", weight=9]; 3416 -> 327[label="",style="solid", color="burlywood", weight=3]; 3417[label="vuz2500/Zero",fontsize=10,color="white",style="solid",shape="box"];294 -> 3417[label="",style="solid", color="burlywood", weight=9]; 3417 -> 328[label="",style="solid", color="burlywood", weight=3]; 295[label="primEqNat Zero vuz2500",fontsize=16,color="burlywood",shape="box"];3418[label="vuz2500/Succ vuz25000",fontsize=10,color="white",style="solid",shape="box"];295 -> 3418[label="",style="solid", color="burlywood", weight=9]; 3418 -> 329[label="",style="solid", color="burlywood", weight=3]; 3419[label="vuz2500/Zero",fontsize=10,color="white",style="solid",shape="box"];295 -> 3419[label="",style="solid", color="burlywood", weight=9]; 3419 -> 330[label="",style="solid", color="burlywood", weight=3]; 296[label="vuz2500",fontsize=16,color="green",shape="box"];297[label="vuz2600",fontsize=16,color="green",shape="box"];298[label="vuz28",fontsize=16,color="green",shape="box"];299[label="vuz270",fontsize=16,color="green",shape="box"];300[label="vuz23",fontsize=16,color="green",shape="box"];301[label="vuz22",fontsize=16,color="green",shape="box"];302[label="vuz20",fontsize=16,color="green",shape="box"];303[label="vuz23",fontsize=16,color="green",shape="box"];304[label="vuz22",fontsize=16,color="green",shape="box"];305[label="vuz20",fontsize=16,color="green",shape="box"];306 -> 331[label="",style="dashed", color="red", weight=0]; 306[label="Integer vuz290 `quot` gcd vuz30 (vuz23 * vuz21)",fontsize=16,color="magenta"];306 -> 332[label="",style="dashed", color="magenta", weight=3]; 307[label="vuz21",fontsize=16,color="green",shape="box"];308[label="vuz20",fontsize=16,color="green",shape="box"];309[label="vuz23",fontsize=16,color="green",shape="box"];310[label="vuz22",fontsize=16,color="green",shape="box"];311[label="vuz21",fontsize=16,color="green",shape="box"];312[label="vuz20",fontsize=16,color="green",shape="box"];313[label="vuz23",fontsize=16,color="green",shape="box"];314[label="vuz22",fontsize=16,color="green",shape="box"];315[label="primQuotInt (Pos vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];315 -> 333[label="",style="solid", color="black", weight=3]; 316[label="primQuotInt (Neg vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];316 -> 334[label="",style="solid", color="black", weight=3]; 317[label="vuz23",fontsize=16,color="green",shape="box"];318[label="vuz22",fontsize=16,color="green",shape="box"];319[label="vuz20",fontsize=16,color="green",shape="box"];320[label="Integer vuz230 * Integer vuz210",fontsize=16,color="black",shape="box"];320 -> 335[label="",style="solid", color="black", weight=3]; 321[label="vuz21",fontsize=16,color="green",shape="box"];322[label="vuz20",fontsize=16,color="green",shape="box"];323[label="vuz23",fontsize=16,color="green",shape="box"];324[label="vuz22",fontsize=16,color="green",shape="box"];325[label="Succ vuz30100",fontsize=16,color="green",shape="box"];326[label="vuz10100",fontsize=16,color="green",shape="box"];327[label="primEqNat (Succ vuz26000) (Succ vuz25000)",fontsize=16,color="black",shape="box"];327 -> 336[label="",style="solid", color="black", weight=3]; 328[label="primEqNat (Succ vuz26000) Zero",fontsize=16,color="black",shape="box"];328 -> 337[label="",style="solid", color="black", weight=3]; 329[label="primEqNat Zero (Succ vuz25000)",fontsize=16,color="black",shape="box"];329 -> 338[label="",style="solid", color="black", weight=3]; 330[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];330 -> 339[label="",style="solid", color="black", weight=3]; 332 -> 246[label="",style="dashed", color="red", weight=0]; 332[label="vuz23 * vuz21",fontsize=16,color="magenta"];331[label="Integer vuz290 `quot` gcd vuz30 vuz38",fontsize=16,color="black",shape="triangle"];331 -> 340[label="",style="solid", color="black", weight=3]; 333 -> 432[label="",style="dashed", color="red", weight=0]; 333[label="primQuotInt (Pos vuz310) (gcd vuz33 vuz32)",fontsize=16,color="magenta"];333 -> 433[label="",style="dashed", color="magenta", weight=3]; 334 -> 460[label="",style="dashed", color="red", weight=0]; 334[label="primQuotInt (Neg vuz310) (gcd vuz33 vuz32)",fontsize=16,color="magenta"];334 -> 461[label="",style="dashed", color="magenta", weight=3]; 335[label="Integer (primMulInt vuz230 vuz210)",fontsize=16,color="green",shape="box"];335 -> 343[label="",style="dashed", color="green", weight=3]; 336 -> 258[label="",style="dashed", color="red", weight=0]; 336[label="primEqNat vuz26000 vuz25000",fontsize=16,color="magenta"];336 -> 344[label="",style="dashed", color="magenta", weight=3]; 336 -> 345[label="",style="dashed", color="magenta", weight=3]; 337[label="False",fontsize=16,color="green",shape="box"];338[label="False",fontsize=16,color="green",shape="box"];339[label="True",fontsize=16,color="green",shape="box"];340[label="Integer vuz290 `quot` gcd3 vuz30 vuz38",fontsize=16,color="black",shape="box"];340 -> 346[label="",style="solid", color="black", weight=3]; 433[label="gcd vuz33 vuz32",fontsize=16,color="black",shape="triangle"];433 -> 449[label="",style="solid", color="black", weight=3]; 432[label="primQuotInt (Pos vuz310) vuz56",fontsize=16,color="burlywood",shape="triangle"];3420[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];432 -> 3420[label="",style="solid", color="burlywood", weight=9]; 3420 -> 450[label="",style="solid", color="burlywood", weight=3]; 3421[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];432 -> 3421[label="",style="solid", color="burlywood", weight=9]; 3421 -> 451[label="",style="solid", color="burlywood", weight=3]; 461 -> 433[label="",style="dashed", color="red", weight=0]; 461[label="gcd vuz33 vuz32",fontsize=16,color="magenta"];460[label="primQuotInt (Neg vuz310) vuz59",fontsize=16,color="burlywood",shape="triangle"];3422[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];460 -> 3422[label="",style="solid", color="burlywood", weight=9]; 3422 -> 477[label="",style="solid", color="burlywood", weight=3]; 3423[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];460 -> 3423[label="",style="solid", color="burlywood", weight=9]; 3423 -> 478[label="",style="solid", color="burlywood", weight=3]; 343 -> 112[label="",style="dashed", color="red", weight=0]; 343[label="primMulInt vuz230 vuz210",fontsize=16,color="magenta"];343 -> 349[label="",style="dashed", color="magenta", weight=3]; 343 -> 350[label="",style="dashed", color="magenta", weight=3]; 344[label="vuz25000",fontsize=16,color="green",shape="box"];345[label="vuz26000",fontsize=16,color="green",shape="box"];346 -> 351[label="",style="dashed", color="red", weight=0]; 346[label="Integer vuz290 `quot` gcd2 (vuz30 == fromInt (Pos Zero)) vuz30 vuz38",fontsize=16,color="magenta"];346 -> 352[label="",style="dashed", color="magenta", weight=3]; 449[label="gcd3 vuz33 vuz32",fontsize=16,color="black",shape="box"];449 -> 455[label="",style="solid", color="black", weight=3]; 450[label="primQuotInt (Pos vuz310) (Pos vuz560)",fontsize=16,color="burlywood",shape="box"];3424[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];450 -> 3424[label="",style="solid", color="burlywood", weight=9]; 3424 -> 456[label="",style="solid", color="burlywood", weight=3]; 3425[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];450 -> 3425[label="",style="solid", color="burlywood", weight=9]; 3425 -> 457[label="",style="solid", color="burlywood", weight=3]; 451[label="primQuotInt (Pos vuz310) (Neg vuz560)",fontsize=16,color="burlywood",shape="box"];3426[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];451 -> 3426[label="",style="solid", color="burlywood", weight=9]; 3426 -> 458[label="",style="solid", color="burlywood", weight=3]; 3427[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];451 -> 3427[label="",style="solid", color="burlywood", weight=9]; 3427 -> 459[label="",style="solid", color="burlywood", weight=3]; 477[label="primQuotInt (Neg vuz310) (Pos vuz590)",fontsize=16,color="burlywood",shape="box"];3428[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];477 -> 3428[label="",style="solid", color="burlywood", weight=9]; 3428 -> 481[label="",style="solid", color="burlywood", weight=3]; 3429[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];477 -> 3429[label="",style="solid", color="burlywood", weight=9]; 3429 -> 482[label="",style="solid", color="burlywood", weight=3]; 478[label="primQuotInt (Neg vuz310) (Neg vuz590)",fontsize=16,color="burlywood",shape="box"];3430[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];478 -> 3430[label="",style="solid", color="burlywood", weight=9]; 3430 -> 483[label="",style="solid", color="burlywood", weight=3]; 3431[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];478 -> 3431[label="",style="solid", color="burlywood", weight=9]; 3431 -> 484[label="",style="solid", color="burlywood", weight=3]; 349[label="vuz210",fontsize=16,color="green",shape="box"];350[label="vuz230",fontsize=16,color="green",shape="box"];352 -> 13[label="",style="dashed", color="red", weight=0]; 352[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];351[label="Integer vuz290 `quot` gcd2 (vuz30 == vuz39) vuz30 vuz38",fontsize=16,color="burlywood",shape="triangle"];3432[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];351 -> 3432[label="",style="solid", color="burlywood", weight=9]; 3432 -> 357[label="",style="solid", color="burlywood", weight=3]; 455 -> 479[label="",style="dashed", color="red", weight=0]; 455[label="gcd2 (vuz33 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];455 -> 480[label="",style="dashed", color="magenta", weight=3]; 456[label="primQuotInt (Pos vuz310) (Pos (Succ vuz5600))",fontsize=16,color="black",shape="box"];456 -> 485[label="",style="solid", color="black", weight=3]; 457[label="primQuotInt (Pos vuz310) (Pos Zero)",fontsize=16,color="black",shape="box"];457 -> 486[label="",style="solid", color="black", weight=3]; 458[label="primQuotInt (Pos vuz310) (Neg (Succ vuz5600))",fontsize=16,color="black",shape="box"];458 -> 487[label="",style="solid", color="black", weight=3]; 459[label="primQuotInt (Pos vuz310) (Neg Zero)",fontsize=16,color="black",shape="box"];459 -> 488[label="",style="solid", color="black", weight=3]; 481[label="primQuotInt (Neg vuz310) (Pos (Succ vuz5900))",fontsize=16,color="black",shape="box"];481 -> 495[label="",style="solid", color="black", weight=3]; 482[label="primQuotInt (Neg vuz310) (Pos Zero)",fontsize=16,color="black",shape="box"];482 -> 496[label="",style="solid", color="black", weight=3]; 483[label="primQuotInt (Neg vuz310) (Neg (Succ vuz5900))",fontsize=16,color="black",shape="box"];483 -> 497[label="",style="solid", color="black", weight=3]; 484[label="primQuotInt (Neg vuz310) (Neg Zero)",fontsize=16,color="black",shape="box"];484 -> 498[label="",style="solid", color="black", weight=3]; 357[label="Integer vuz290 `quot` gcd2 (Integer vuz300 == vuz39) (Integer vuz300) vuz38",fontsize=16,color="burlywood",shape="box"];3433[label="vuz39/Integer vuz390",fontsize=10,color="white",style="solid",shape="box"];357 -> 3433[label="",style="solid", color="burlywood", weight=9]; 3433 -> 366[label="",style="solid", color="burlywood", weight=3]; 480 -> 156[label="",style="dashed", color="red", weight=0]; 480[label="vuz33 == fromInt (Pos Zero)",fontsize=16,color="magenta"];480 -> 489[label="",style="dashed", color="magenta", weight=3]; 480 -> 490[label="",style="dashed", color="magenta", weight=3]; 479[label="gcd2 vuz60 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];3434[label="vuz60/False",fontsize=10,color="white",style="solid",shape="box"];479 -> 3434[label="",style="solid", color="burlywood", weight=9]; 3434 -> 491[label="",style="solid", color="burlywood", weight=3]; 3435[label="vuz60/True",fontsize=10,color="white",style="solid",shape="box"];479 -> 3435[label="",style="solid", color="burlywood", weight=9]; 3435 -> 492[label="",style="solid", color="burlywood", weight=3]; 485[label="Pos (primDivNatS vuz310 (Succ vuz5600))",fontsize=16,color="green",shape="box"];485 -> 499[label="",style="dashed", color="green", weight=3]; 486[label="error []",fontsize=16,color="black",shape="triangle"];486 -> 500[label="",style="solid", color="black", weight=3]; 487[label="Neg (primDivNatS vuz310 (Succ vuz5600))",fontsize=16,color="green",shape="box"];487 -> 501[label="",style="dashed", color="green", weight=3]; 488 -> 486[label="",style="dashed", color="red", weight=0]; 488[label="error []",fontsize=16,color="magenta"];495[label="Neg (primDivNatS vuz310 (Succ vuz5900))",fontsize=16,color="green",shape="box"];495 -> 506[label="",style="dashed", color="green", weight=3]; 496 -> 486[label="",style="dashed", color="red", weight=0]; 496[label="error []",fontsize=16,color="magenta"];497[label="Pos (primDivNatS vuz310 (Succ vuz5900))",fontsize=16,color="green",shape="box"];497 -> 507[label="",style="dashed", color="green", weight=3]; 498 -> 486[label="",style="dashed", color="red", weight=0]; 498[label="error []",fontsize=16,color="magenta"];366[label="Integer vuz290 `quot` gcd2 (Integer vuz300 == Integer vuz390) (Integer vuz300) vuz38",fontsize=16,color="black",shape="box"];366 -> 371[label="",style="solid", color="black", weight=3]; 489[label="vuz33",fontsize=16,color="green",shape="box"];490 -> 12[label="",style="dashed", color="red", weight=0]; 490[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];491[label="gcd2 False vuz33 vuz32",fontsize=16,color="black",shape="box"];491 -> 502[label="",style="solid", color="black", weight=3]; 492[label="gcd2 True vuz33 vuz32",fontsize=16,color="black",shape="box"];492 -> 503[label="",style="solid", color="black", weight=3]; 499[label="primDivNatS vuz310 (Succ vuz5600)",fontsize=16,color="burlywood",shape="triangle"];3436[label="vuz310/Succ vuz3100",fontsize=10,color="white",style="solid",shape="box"];499 -> 3436[label="",style="solid", color="burlywood", weight=9]; 3436 -> 508[label="",style="solid", color="burlywood", weight=3]; 3437[label="vuz310/Zero",fontsize=10,color="white",style="solid",shape="box"];499 -> 3437[label="",style="solid", color="burlywood", weight=9]; 3437 -> 509[label="",style="solid", color="burlywood", weight=3]; 500[label="error []",fontsize=16,color="red",shape="box"];501 -> 499[label="",style="dashed", color="red", weight=0]; 501[label="primDivNatS vuz310 (Succ vuz5600)",fontsize=16,color="magenta"];501 -> 510[label="",style="dashed", color="magenta", weight=3]; 506 -> 499[label="",style="dashed", color="red", weight=0]; 506[label="primDivNatS vuz310 (Succ vuz5900)",fontsize=16,color="magenta"];506 -> 514[label="",style="dashed", color="magenta", weight=3]; 506 -> 515[label="",style="dashed", color="magenta", weight=3]; 507 -> 499[label="",style="dashed", color="red", weight=0]; 507[label="primDivNatS vuz310 (Succ vuz5900)",fontsize=16,color="magenta"];507 -> 516[label="",style="dashed", color="magenta", weight=3]; 507 -> 517[label="",style="dashed", color="magenta", weight=3]; 371 -> 378[label="",style="dashed", color="red", weight=0]; 371[label="Integer vuz290 `quot` gcd2 (primEqInt vuz300 vuz390) (Integer vuz300) vuz38",fontsize=16,color="magenta"];371 -> 379[label="",style="dashed", color="magenta", weight=3]; 502[label="gcd0 vuz33 vuz32",fontsize=16,color="black",shape="triangle"];502 -> 511[label="",style="solid", color="black", weight=3]; 503 -> 512[label="",style="dashed", color="red", weight=0]; 503[label="gcd1 (vuz32 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];503 -> 513[label="",style="dashed", color="magenta", weight=3]; 508[label="primDivNatS (Succ vuz3100) (Succ vuz5600)",fontsize=16,color="black",shape="box"];508 -> 518[label="",style="solid", color="black", weight=3]; 509[label="primDivNatS Zero (Succ vuz5600)",fontsize=16,color="black",shape="box"];509 -> 519[label="",style="solid", color="black", weight=3]; 510[label="vuz5600",fontsize=16,color="green",shape="box"];514[label="vuz310",fontsize=16,color="green",shape="box"];515[label="vuz5900",fontsize=16,color="green",shape="box"];516[label="vuz310",fontsize=16,color="green",shape="box"];517[label="vuz5900",fontsize=16,color="green",shape="box"];379 -> 175[label="",style="dashed", color="red", weight=0]; 379[label="primEqInt vuz300 vuz390",fontsize=16,color="magenta"];379 -> 390[label="",style="dashed", color="magenta", weight=3]; 379 -> 391[label="",style="dashed", color="magenta", weight=3]; 378[label="Integer vuz290 `quot` gcd2 vuz48 (Integer vuz300) vuz38",fontsize=16,color="burlywood",shape="triangle"];3438[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];378 -> 3438[label="",style="solid", color="burlywood", weight=9]; 3438 -> 392[label="",style="solid", color="burlywood", weight=3]; 3439[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];378 -> 3439[label="",style="solid", color="burlywood", weight=9]; 3439 -> 393[label="",style="solid", color="burlywood", weight=3]; 511[label="gcd0Gcd' (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];511 -> 520[label="",style="solid", color="black", weight=3]; 513 -> 156[label="",style="dashed", color="red", weight=0]; 513[label="vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];513 -> 521[label="",style="dashed", color="magenta", weight=3]; 513 -> 522[label="",style="dashed", color="magenta", weight=3]; 512[label="gcd1 vuz63 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];3440[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];512 -> 3440[label="",style="solid", color="burlywood", weight=9]; 3440 -> 523[label="",style="solid", color="burlywood", weight=3]; 3441[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];512 -> 3441[label="",style="solid", color="burlywood", weight=9]; 3441 -> 524[label="",style="solid", color="burlywood", weight=3]; 518[label="primDivNatS0 vuz3100 vuz5600 (primGEqNatS vuz3100 vuz5600)",fontsize=16,color="burlywood",shape="box"];3442[label="vuz3100/Succ vuz31000",fontsize=10,color="white",style="solid",shape="box"];518 -> 3442[label="",style="solid", color="burlywood", weight=9]; 3442 -> 527[label="",style="solid", color="burlywood", weight=3]; 3443[label="vuz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];518 -> 3443[label="",style="solid", color="burlywood", weight=9]; 3443 -> 528[label="",style="solid", color="burlywood", weight=3]; 519[label="Zero",fontsize=16,color="green",shape="box"];390[label="vuz300",fontsize=16,color="green",shape="box"];391[label="vuz390",fontsize=16,color="green",shape="box"];392[label="Integer vuz290 `quot` gcd2 False (Integer vuz300) vuz38",fontsize=16,color="black",shape="box"];392 -> 400[label="",style="solid", color="black", weight=3]; 393[label="Integer vuz290 `quot` gcd2 True (Integer vuz300) vuz38",fontsize=16,color="black",shape="box"];393 -> 401[label="",style="solid", color="black", weight=3]; 520[label="gcd0Gcd'2 (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];520 -> 529[label="",style="solid", color="black", weight=3]; 521[label="vuz32",fontsize=16,color="green",shape="box"];522 -> 12[label="",style="dashed", color="red", weight=0]; 522[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];523[label="gcd1 False vuz33 vuz32",fontsize=16,color="black",shape="box"];523 -> 530[label="",style="solid", color="black", weight=3]; 524[label="gcd1 True vuz33 vuz32",fontsize=16,color="black",shape="box"];524 -> 531[label="",style="solid", color="black", weight=3]; 527[label="primDivNatS0 (Succ vuz31000) vuz5600 (primGEqNatS (Succ vuz31000) vuz5600)",fontsize=16,color="burlywood",shape="box"];3444[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];527 -> 3444[label="",style="solid", color="burlywood", weight=9]; 3444 -> 537[label="",style="solid", color="burlywood", weight=3]; 3445[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];527 -> 3445[label="",style="solid", color="burlywood", weight=9]; 3445 -> 538[label="",style="solid", color="burlywood", weight=3]; 528[label="primDivNatS0 Zero vuz5600 (primGEqNatS Zero vuz5600)",fontsize=16,color="burlywood",shape="box"];3446[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];528 -> 3446[label="",style="solid", color="burlywood", weight=9]; 3446 -> 539[label="",style="solid", color="burlywood", weight=3]; 3447[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];528 -> 3447[label="",style="solid", color="burlywood", weight=9]; 3447 -> 540[label="",style="solid", color="burlywood", weight=3]; 400[label="Integer vuz290 `quot` gcd0 (Integer vuz300) vuz38",fontsize=16,color="black",shape="triangle"];400 -> 408[label="",style="solid", color="black", weight=3]; 401 -> 409[label="",style="dashed", color="red", weight=0]; 401[label="Integer vuz290 `quot` gcd1 (vuz38 == fromInt (Pos Zero)) (Integer vuz300) vuz38",fontsize=16,color="magenta"];401 -> 410[label="",style="dashed", color="magenta", weight=3]; 529 -> 541[label="",style="dashed", color="red", weight=0]; 529[label="gcd0Gcd'1 (abs vuz32 == fromInt (Pos Zero)) (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];529 -> 542[label="",style="dashed", color="magenta", weight=3]; 530 -> 502[label="",style="dashed", color="red", weight=0]; 530[label="gcd0 vuz33 vuz32",fontsize=16,color="magenta"];531 -> 486[label="",style="dashed", color="red", weight=0]; 531[label="error []",fontsize=16,color="magenta"];537[label="primDivNatS0 (Succ vuz31000) (Succ vuz56000) (primGEqNatS (Succ vuz31000) (Succ vuz56000))",fontsize=16,color="black",shape="box"];537 -> 543[label="",style="solid", color="black", weight=3]; 538[label="primDivNatS0 (Succ vuz31000) Zero (primGEqNatS (Succ vuz31000) Zero)",fontsize=16,color="black",shape="box"];538 -> 544[label="",style="solid", color="black", weight=3]; 539[label="primDivNatS0 Zero (Succ vuz56000) (primGEqNatS Zero (Succ vuz56000))",fontsize=16,color="black",shape="box"];539 -> 545[label="",style="solid", color="black", weight=3]; 540[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];540 -> 546[label="",style="solid", color="black", weight=3]; 408[label="Integer vuz290 `quot` gcd0Gcd' (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="black",shape="box"];408 -> 419[label="",style="solid", color="black", weight=3]; 410 -> 13[label="",style="dashed", color="red", weight=0]; 410[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];409[label="Integer vuz290 `quot` gcd1 (vuz38 == vuz53) (Integer vuz300) vuz38",fontsize=16,color="burlywood",shape="triangle"];3448[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];409 -> 3448[label="",style="solid", color="burlywood", weight=9]; 3448 -> 420[label="",style="solid", color="burlywood", weight=3]; 542 -> 156[label="",style="dashed", color="red", weight=0]; 542[label="abs vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];542 -> 547[label="",style="dashed", color="magenta", weight=3]; 542 -> 548[label="",style="dashed", color="magenta", weight=3]; 541[label="gcd0Gcd'1 vuz66 (abs vuz33) (abs vuz32)",fontsize=16,color="burlywood",shape="triangle"];3449[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];541 -> 3449[label="",style="solid", color="burlywood", weight=9]; 3449 -> 549[label="",style="solid", color="burlywood", weight=3]; 3450[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];541 -> 3450[label="",style="solid", color="burlywood", weight=9]; 3450 -> 550[label="",style="solid", color="burlywood", weight=3]; 543 -> 1301[label="",style="dashed", color="red", weight=0]; 543[label="primDivNatS0 (Succ vuz31000) (Succ vuz56000) (primGEqNatS vuz31000 vuz56000)",fontsize=16,color="magenta"];543 -> 1302[label="",style="dashed", color="magenta", weight=3]; 543 -> 1303[label="",style="dashed", color="magenta", weight=3]; 543 -> 1304[label="",style="dashed", color="magenta", weight=3]; 543 -> 1305[label="",style="dashed", color="magenta", weight=3]; 544[label="primDivNatS0 (Succ vuz31000) Zero True",fontsize=16,color="black",shape="box"];544 -> 556[label="",style="solid", color="black", weight=3]; 545[label="primDivNatS0 Zero (Succ vuz56000) False",fontsize=16,color="black",shape="box"];545 -> 557[label="",style="solid", color="black", weight=3]; 546[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];546 -> 558[label="",style="solid", color="black", weight=3]; 419[label="Integer vuz290 `quot` gcd0Gcd'2 (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="black",shape="box"];419 -> 426[label="",style="solid", color="black", weight=3]; 420[label="Integer vuz290 `quot` gcd1 (Integer vuz380 == vuz53) (Integer vuz300) (Integer vuz380)",fontsize=16,color="burlywood",shape="box"];3451[label="vuz53/Integer vuz530",fontsize=10,color="white",style="solid",shape="box"];420 -> 3451[label="",style="solid", color="burlywood", weight=9]; 3451 -> 427[label="",style="solid", color="burlywood", weight=3]; 547[label="abs vuz32",fontsize=16,color="black",shape="triangle"];547 -> 559[label="",style="solid", color="black", weight=3]; 548 -> 12[label="",style="dashed", color="red", weight=0]; 548[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];549[label="gcd0Gcd'1 False (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];549 -> 560[label="",style="solid", color="black", weight=3]; 550[label="gcd0Gcd'1 True (abs vuz33) (abs vuz32)",fontsize=16,color="black",shape="box"];550 -> 561[label="",style="solid", color="black", weight=3]; 1302[label="vuz31000",fontsize=16,color="green",shape="box"];1303[label="vuz56000",fontsize=16,color="green",shape="box"];1304[label="vuz31000",fontsize=16,color="green",shape="box"];1305[label="vuz56000",fontsize=16,color="green",shape="box"];1301[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz99 vuz100)",fontsize=16,color="burlywood",shape="triangle"];3452[label="vuz99/Succ vuz990",fontsize=10,color="white",style="solid",shape="box"];1301 -> 3452[label="",style="solid", color="burlywood", weight=9]; 3452 -> 1342[label="",style="solid", color="burlywood", weight=3]; 3453[label="vuz99/Zero",fontsize=10,color="white",style="solid",shape="box"];1301 -> 3453[label="",style="solid", color="burlywood", weight=9]; 3453 -> 1343[label="",style="solid", color="burlywood", weight=3]; 556[label="Succ (primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];556 -> 569[label="",style="dashed", color="green", weight=3]; 557[label="Zero",fontsize=16,color="green",shape="box"];558[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];558 -> 570[label="",style="dashed", color="green", weight=3]; 426 -> 493[label="",style="dashed", color="red", weight=0]; 426[label="Integer vuz290 `quot` gcd0Gcd'1 (abs vuz38 == fromInt (Pos Zero)) (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="magenta"];426 -> 494[label="",style="dashed", color="magenta", weight=3]; 427[label="Integer vuz290 `quot` gcd1 (Integer vuz380 == Integer vuz530) (Integer vuz300) (Integer vuz380)",fontsize=16,color="black",shape="box"];427 -> 504[label="",style="solid", color="black", weight=3]; 559[label="absReal vuz32",fontsize=16,color="black",shape="box"];559 -> 571[label="",style="solid", color="black", weight=3]; 560 -> 572[label="",style="dashed", color="red", weight=0]; 560[label="gcd0Gcd'0 (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];560 -> 573[label="",style="dashed", color="magenta", weight=3]; 560 -> 574[label="",style="dashed", color="magenta", weight=3]; 561 -> 547[label="",style="dashed", color="red", weight=0]; 561[label="abs vuz33",fontsize=16,color="magenta"];561 -> 575[label="",style="dashed", color="magenta", weight=3]; 1342[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) vuz100)",fontsize=16,color="burlywood",shape="box"];3454[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1342 -> 3454[label="",style="solid", color="burlywood", weight=9]; 3454 -> 1377[label="",style="solid", color="burlywood", weight=3]; 3455[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1342 -> 3455[label="",style="solid", color="burlywood", weight=9]; 3455 -> 1378[label="",style="solid", color="burlywood", weight=3]; 1343[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero vuz100)",fontsize=16,color="burlywood",shape="box"];3456[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1343 -> 3456[label="",style="solid", color="burlywood", weight=9]; 3456 -> 1379[label="",style="solid", color="burlywood", weight=3]; 3457[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1343 -> 3457[label="",style="solid", color="burlywood", weight=9]; 3457 -> 1380[label="",style="solid", color="burlywood", weight=3]; 569 -> 499[label="",style="dashed", color="red", weight=0]; 569[label="primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero)",fontsize=16,color="magenta"];569 -> 580[label="",style="dashed", color="magenta", weight=3]; 569 -> 581[label="",style="dashed", color="magenta", weight=3]; 570 -> 499[label="",style="dashed", color="red", weight=0]; 570[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];570 -> 582[label="",style="dashed", color="magenta", weight=3]; 570 -> 583[label="",style="dashed", color="magenta", weight=3]; 494 -> 13[label="",style="dashed", color="red", weight=0]; 494[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];493[label="Integer vuz290 `quot` gcd0Gcd'1 (abs vuz38 == vuz62) (abs (Integer vuz300)) (abs vuz38)",fontsize=16,color="black",shape="triangle"];493 -> 505[label="",style="solid", color="black", weight=3]; 504 -> 525[label="",style="dashed", color="red", weight=0]; 504[label="Integer vuz290 `quot` gcd1 (primEqInt vuz380 vuz530) (Integer vuz300) (Integer vuz380)",fontsize=16,color="magenta"];504 -> 526[label="",style="dashed", color="magenta", weight=3]; 571[label="absReal2 vuz32",fontsize=16,color="black",shape="box"];571 -> 584[label="",style="solid", color="black", weight=3]; 573 -> 547[label="",style="dashed", color="red", weight=0]; 573[label="abs vuz33",fontsize=16,color="magenta"];573 -> 585[label="",style="dashed", color="magenta", weight=3]; 574 -> 547[label="",style="dashed", color="red", weight=0]; 574[label="abs vuz32",fontsize=16,color="magenta"];572[label="gcd0Gcd'0 vuz71 vuz70",fontsize=16,color="black",shape="triangle"];572 -> 586[label="",style="solid", color="black", weight=3]; 575[label="vuz33",fontsize=16,color="green",shape="box"];1377[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) (Succ vuz1000))",fontsize=16,color="black",shape="box"];1377 -> 1383[label="",style="solid", color="black", weight=3]; 1378[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) Zero)",fontsize=16,color="black",shape="box"];1378 -> 1384[label="",style="solid", color="black", weight=3]; 1379[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero (Succ vuz1000))",fontsize=16,color="black",shape="box"];1379 -> 1385[label="",style="solid", color="black", weight=3]; 1380[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1380 -> 1386[label="",style="solid", color="black", weight=3]; 580[label="primMinusNatS (Succ vuz31000) Zero",fontsize=16,color="black",shape="triangle"];580 -> 595[label="",style="solid", color="black", weight=3]; 581[label="Zero",fontsize=16,color="green",shape="box"];582[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];582 -> 596[label="",style="solid", color="black", weight=3]; 583[label="Zero",fontsize=16,color="green",shape="box"];505[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal vuz38 == vuz62) (abs (Integer vuz300)) (absReal vuz38)",fontsize=16,color="black",shape="box"];505 -> 532[label="",style="solid", color="black", weight=3]; 526 -> 175[label="",style="dashed", color="red", weight=0]; 526[label="primEqInt vuz380 vuz530",fontsize=16,color="magenta"];526 -> 533[label="",style="dashed", color="magenta", weight=3]; 526 -> 534[label="",style="dashed", color="magenta", weight=3]; 525[label="Integer vuz290 `quot` gcd1 vuz65 (Integer vuz300) (Integer vuz380)",fontsize=16,color="burlywood",shape="triangle"];3458[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];525 -> 3458[label="",style="solid", color="burlywood", weight=9]; 3458 -> 535[label="",style="solid", color="burlywood", weight=3]; 3459[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];525 -> 3459[label="",style="solid", color="burlywood", weight=9]; 3459 -> 536[label="",style="solid", color="burlywood", weight=3]; 584 -> 597[label="",style="dashed", color="red", weight=0]; 584[label="absReal1 vuz32 (vuz32 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];584 -> 598[label="",style="dashed", color="magenta", weight=3]; 585[label="vuz33",fontsize=16,color="green",shape="box"];586[label="gcd0Gcd' vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];586 -> 599[label="",style="solid", color="black", weight=3]; 1383 -> 1301[label="",style="dashed", color="red", weight=0]; 1383[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz990 vuz1000)",fontsize=16,color="magenta"];1383 -> 1389[label="",style="dashed", color="magenta", weight=3]; 1383 -> 1390[label="",style="dashed", color="magenta", weight=3]; 1384[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="black",shape="triangle"];1384 -> 1391[label="",style="solid", color="black", weight=3]; 1385[label="primDivNatS0 (Succ vuz97) (Succ vuz98) False",fontsize=16,color="black",shape="box"];1385 -> 1392[label="",style="solid", color="black", weight=3]; 1386 -> 1384[label="",style="dashed", color="red", weight=0]; 1386[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="magenta"];595[label="Succ vuz31000",fontsize=16,color="green",shape="box"];596[label="Zero",fontsize=16,color="green",shape="box"];532[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal2 vuz38 == vuz62) (abs (Integer vuz300)) (absReal2 vuz38)",fontsize=16,color="black",shape="box"];532 -> 551[label="",style="solid", color="black", weight=3]; 533[label="vuz380",fontsize=16,color="green",shape="box"];534[label="vuz530",fontsize=16,color="green",shape="box"];535[label="Integer vuz290 `quot` gcd1 False (Integer vuz300) (Integer vuz380)",fontsize=16,color="black",shape="box"];535 -> 552[label="",style="solid", color="black", weight=3]; 536[label="Integer vuz290 `quot` gcd1 True (Integer vuz300) (Integer vuz380)",fontsize=16,color="black",shape="box"];536 -> 553[label="",style="solid", color="black", weight=3]; 598 -> 12[label="",style="dashed", color="red", weight=0]; 598[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];597[label="absReal1 vuz32 (vuz32 >= vuz72)",fontsize=16,color="black",shape="triangle"];597 -> 606[label="",style="solid", color="black", weight=3]; 599[label="gcd0Gcd'2 vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];599 -> 608[label="",style="solid", color="black", weight=3]; 1389[label="vuz990",fontsize=16,color="green",shape="box"];1390[label="vuz1000",fontsize=16,color="green",shape="box"];1391[label="Succ (primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98)))",fontsize=16,color="green",shape="box"];1391 -> 1430[label="",style="dashed", color="green", weight=3]; 1392[label="Zero",fontsize=16,color="green",shape="box"];551 -> 562[label="",style="dashed", color="red", weight=0]; 551[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];551 -> 563[label="",style="dashed", color="magenta", weight=3]; 551 -> 564[label="",style="dashed", color="magenta", weight=3]; 552 -> 400[label="",style="dashed", color="red", weight=0]; 552[label="Integer vuz290 `quot` gcd0 (Integer vuz300) (Integer vuz380)",fontsize=16,color="magenta"];552 -> 587[label="",style="dashed", color="magenta", weight=3]; 553[label="Integer vuz290 `quot` error []",fontsize=16,color="black",shape="box"];553 -> 588[label="",style="solid", color="black", weight=3]; 606[label="absReal1 vuz32 (compare vuz32 vuz72 /= LT)",fontsize=16,color="black",shape="box"];606 -> 617[label="",style="solid", color="black", weight=3]; 608 -> 619[label="",style="dashed", color="red", weight=0]; 608[label="gcd0Gcd'1 (vuz71 `rem` vuz70 == fromInt (Pos Zero)) vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="magenta"];608 -> 620[label="",style="dashed", color="magenta", weight=3]; 1430 -> 499[label="",style="dashed", color="red", weight=0]; 1430[label="primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98))",fontsize=16,color="magenta"];1430 -> 1465[label="",style="dashed", color="magenta", weight=3]; 1430 -> 1466[label="",style="dashed", color="magenta", weight=3]; 563 -> 13[label="",style="dashed", color="red", weight=0]; 563[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];564 -> 13[label="",style="dashed", color="red", weight=0]; 564[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];562[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= vuz69) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (vuz38 >= vuz68))",fontsize=16,color="black",shape="triangle"];562 -> 589[label="",style="solid", color="black", weight=3]; 587[label="Integer vuz380",fontsize=16,color="green",shape="box"];588[label="error []",fontsize=16,color="red",shape="box"];617[label="absReal1 vuz32 (not (compare vuz32 vuz72 == LT))",fontsize=16,color="black",shape="box"];617 -> 628[label="",style="solid", color="black", weight=3]; 620 -> 156[label="",style="dashed", color="red", weight=0]; 620[label="vuz71 `rem` vuz70 == fromInt (Pos Zero)",fontsize=16,color="magenta"];620 -> 629[label="",style="dashed", color="magenta", weight=3]; 620 -> 630[label="",style="dashed", color="magenta", weight=3]; 619[label="gcd0Gcd'1 vuz73 vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="burlywood",shape="triangle"];3460[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];619 -> 3460[label="",style="solid", color="burlywood", weight=9]; 3460 -> 631[label="",style="solid", color="burlywood", weight=3]; 3461[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];619 -> 3461[label="",style="solid", color="burlywood", weight=9]; 3461 -> 632[label="",style="solid", color="burlywood", weight=3]; 1465 -> 1025[label="",style="dashed", color="red", weight=0]; 1465[label="primMinusNatS (Succ vuz97) (Succ vuz98)",fontsize=16,color="magenta"];1465 -> 1502[label="",style="dashed", color="magenta", weight=3]; 1465 -> 1503[label="",style="dashed", color="magenta", weight=3]; 1466[label="Succ vuz98",fontsize=16,color="green",shape="box"];589[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (compare vuz38 vuz69 /= LT) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (compare vuz38 vuz69 /= LT))",fontsize=16,color="black",shape="box"];589 -> 607[label="",style="solid", color="black", weight=3]; 628[label="absReal1 vuz32 (not (primCmpInt vuz32 vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3462[label="vuz32/Pos vuz320",fontsize=10,color="white",style="solid",shape="box"];628 -> 3462[label="",style="solid", color="burlywood", weight=9]; 3462 -> 641[label="",style="solid", color="burlywood", weight=3]; 3463[label="vuz32/Neg vuz320",fontsize=10,color="white",style="solid",shape="box"];628 -> 3463[label="",style="solid", color="burlywood", weight=9]; 3463 -> 642[label="",style="solid", color="burlywood", weight=3]; 629[label="vuz71 `rem` vuz70",fontsize=16,color="black",shape="triangle"];629 -> 643[label="",style="solid", color="black", weight=3]; 630 -> 12[label="",style="dashed", color="red", weight=0]; 630[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];631[label="gcd0Gcd'1 False vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];631 -> 644[label="",style="solid", color="black", weight=3]; 632[label="gcd0Gcd'1 True vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="black",shape="box"];632 -> 645[label="",style="solid", color="black", weight=3]; 1502[label="Succ vuz97",fontsize=16,color="green",shape="box"];1503[label="Succ vuz98",fontsize=16,color="green",shape="box"];1025[label="primMinusNatS vuz88 vuz89",fontsize=16,color="burlywood",shape="triangle"];3464[label="vuz88/Succ vuz880",fontsize=10,color="white",style="solid",shape="box"];1025 -> 3464[label="",style="solid", color="burlywood", weight=9]; 3464 -> 1034[label="",style="solid", color="burlywood", weight=3]; 3465[label="vuz88/Zero",fontsize=10,color="white",style="solid",shape="box"];1025 -> 3465[label="",style="solid", color="burlywood", weight=9]; 3465 -> 1035[label="",style="solid", color="burlywood", weight=3]; 607[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 vuz38 (not (compare vuz38 vuz69 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 vuz38 (not (compare vuz38 vuz69 == LT)))",fontsize=16,color="burlywood",shape="box"];3466[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];607 -> 3466[label="",style="solid", color="burlywood", weight=9]; 3466 -> 618[label="",style="solid", color="burlywood", weight=3]; 641[label="absReal1 (Pos vuz320) (not (primCmpInt (Pos vuz320) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3467[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];641 -> 3467[label="",style="solid", color="burlywood", weight=9]; 3467 -> 655[label="",style="solid", color="burlywood", weight=3]; 3468[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];641 -> 3468[label="",style="solid", color="burlywood", weight=9]; 3468 -> 656[label="",style="solid", color="burlywood", weight=3]; 642[label="absReal1 (Neg vuz320) (not (primCmpInt (Neg vuz320) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3469[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];642 -> 3469[label="",style="solid", color="burlywood", weight=9]; 3469 -> 657[label="",style="solid", color="burlywood", weight=3]; 3470[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];642 -> 3470[label="",style="solid", color="burlywood", weight=9]; 3470 -> 658[label="",style="solid", color="burlywood", weight=3]; 643[label="primRemInt vuz71 vuz70",fontsize=16,color="burlywood",shape="triangle"];3471[label="vuz71/Pos vuz710",fontsize=10,color="white",style="solid",shape="box"];643 -> 3471[label="",style="solid", color="burlywood", weight=9]; 3471 -> 659[label="",style="solid", color="burlywood", weight=3]; 3472[label="vuz71/Neg vuz710",fontsize=10,color="white",style="solid",shape="box"];643 -> 3472[label="",style="solid", color="burlywood", weight=9]; 3472 -> 660[label="",style="solid", color="burlywood", weight=3]; 644 -> 572[label="",style="dashed", color="red", weight=0]; 644[label="gcd0Gcd'0 vuz70 (vuz71 `rem` vuz70)",fontsize=16,color="magenta"];644 -> 661[label="",style="dashed", color="magenta", weight=3]; 644 -> 662[label="",style="dashed", color="magenta", weight=3]; 645[label="vuz70",fontsize=16,color="green",shape="box"];1034[label="primMinusNatS (Succ vuz880) vuz89",fontsize=16,color="burlywood",shape="box"];3473[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1034 -> 3473[label="",style="solid", color="burlywood", weight=9]; 3473 -> 1083[label="",style="solid", color="burlywood", weight=3]; 3474[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1034 -> 3474[label="",style="solid", color="burlywood", weight=9]; 3474 -> 1084[label="",style="solid", color="burlywood", weight=3]; 1035[label="primMinusNatS Zero vuz89",fontsize=16,color="burlywood",shape="box"];3475[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1035 -> 3475[label="",style="solid", color="burlywood", weight=9]; 3475 -> 1085[label="",style="solid", color="burlywood", weight=3]; 3476[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1035 -> 3476[label="",style="solid", color="burlywood", weight=9]; 3476 -> 1086[label="",style="solid", color="burlywood", weight=3]; 618[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz69 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz69 == LT)))",fontsize=16,color="burlywood",shape="box"];3477[label="vuz69/Integer vuz690",fontsize=10,color="white",style="solid",shape="box"];618 -> 3477[label="",style="solid", color="burlywood", weight=9]; 3477 -> 633[label="",style="solid", color="burlywood", weight=3]; 655[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3478[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3478[label="",style="solid", color="burlywood", weight=9]; 3478 -> 672[label="",style="solid", color="burlywood", weight=3]; 3479[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3479[label="",style="solid", color="burlywood", weight=9]; 3479 -> 673[label="",style="solid", color="burlywood", weight=3]; 656[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3480[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3480[label="",style="solid", color="burlywood", weight=9]; 3480 -> 674[label="",style="solid", color="burlywood", weight=3]; 3481[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3481[label="",style="solid", color="burlywood", weight=9]; 3481 -> 675[label="",style="solid", color="burlywood", weight=3]; 657[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3482[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3482[label="",style="solid", color="burlywood", weight=9]; 3482 -> 676[label="",style="solid", color="burlywood", weight=3]; 3483[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3483[label="",style="solid", color="burlywood", weight=9]; 3483 -> 677[label="",style="solid", color="burlywood", weight=3]; 658[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3484[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];658 -> 3484[label="",style="solid", color="burlywood", weight=9]; 3484 -> 678[label="",style="solid", color="burlywood", weight=3]; 3485[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];658 -> 3485[label="",style="solid", color="burlywood", weight=9]; 3485 -> 679[label="",style="solid", color="burlywood", weight=3]; 659[label="primRemInt (Pos vuz710) vuz70",fontsize=16,color="burlywood",shape="box"];3486[label="vuz70/Pos vuz700",fontsize=10,color="white",style="solid",shape="box"];659 -> 3486[label="",style="solid", color="burlywood", weight=9]; 3486 -> 680[label="",style="solid", color="burlywood", weight=3]; 3487[label="vuz70/Neg vuz700",fontsize=10,color="white",style="solid",shape="box"];659 -> 3487[label="",style="solid", color="burlywood", weight=9]; 3487 -> 681[label="",style="solid", color="burlywood", weight=3]; 660[label="primRemInt (Neg vuz710) vuz70",fontsize=16,color="burlywood",shape="box"];3488[label="vuz70/Pos vuz700",fontsize=10,color="white",style="solid",shape="box"];660 -> 3488[label="",style="solid", color="burlywood", weight=9]; 3488 -> 682[label="",style="solid", color="burlywood", weight=3]; 3489[label="vuz70/Neg vuz700",fontsize=10,color="white",style="solid",shape="box"];660 -> 3489[label="",style="solid", color="burlywood", weight=9]; 3489 -> 683[label="",style="solid", color="burlywood", weight=3]; 661[label="vuz70",fontsize=16,color="green",shape="box"];662 -> 629[label="",style="dashed", color="red", weight=0]; 662[label="vuz71 `rem` vuz70",fontsize=16,color="magenta"];1083[label="primMinusNatS (Succ vuz880) (Succ vuz890)",fontsize=16,color="black",shape="box"];1083 -> 1137[label="",style="solid", color="black", weight=3]; 1084[label="primMinusNatS (Succ vuz880) Zero",fontsize=16,color="black",shape="box"];1084 -> 1138[label="",style="solid", color="black", weight=3]; 1085[label="primMinusNatS Zero (Succ vuz890)",fontsize=16,color="black",shape="box"];1085 -> 1139[label="",style="solid", color="black", weight=3]; 1086[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];1086 -> 1140[label="",style="solid", color="black", weight=3]; 633[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz690) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz690) == LT)))",fontsize=16,color="black",shape="box"];633 -> 646[label="",style="solid", color="black", weight=3]; 672[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];672 -> 695[label="",style="solid", color="black", weight=3]; 673[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];673 -> 696[label="",style="solid", color="black", weight=3]; 674[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3490[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];674 -> 3490[label="",style="solid", color="burlywood", weight=9]; 3490 -> 697[label="",style="solid", color="burlywood", weight=3]; 3491[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];674 -> 3491[label="",style="solid", color="burlywood", weight=9]; 3491 -> 698[label="",style="solid", color="burlywood", weight=3]; 675[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3492[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];675 -> 3492[label="",style="solid", color="burlywood", weight=9]; 3492 -> 699[label="",style="solid", color="burlywood", weight=3]; 3493[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];675 -> 3493[label="",style="solid", color="burlywood", weight=9]; 3493 -> 700[label="",style="solid", color="burlywood", weight=3]; 676[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];676 -> 701[label="",style="solid", color="black", weight=3]; 677[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];677 -> 702[label="",style="solid", color="black", weight=3]; 678[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3494[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];678 -> 3494[label="",style="solid", color="burlywood", weight=9]; 3494 -> 703[label="",style="solid", color="burlywood", weight=3]; 3495[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];678 -> 3495[label="",style="solid", color="burlywood", weight=9]; 3495 -> 704[label="",style="solid", color="burlywood", weight=3]; 679[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3496[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];679 -> 3496[label="",style="solid", color="burlywood", weight=9]; 3496 -> 705[label="",style="solid", color="burlywood", weight=3]; 3497[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];679 -> 3497[label="",style="solid", color="burlywood", weight=9]; 3497 -> 706[label="",style="solid", color="burlywood", weight=3]; 680[label="primRemInt (Pos vuz710) (Pos vuz700)",fontsize=16,color="burlywood",shape="box"];3498[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];680 -> 3498[label="",style="solid", color="burlywood", weight=9]; 3498 -> 707[label="",style="solid", color="burlywood", weight=3]; 3499[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];680 -> 3499[label="",style="solid", color="burlywood", weight=9]; 3499 -> 708[label="",style="solid", color="burlywood", weight=3]; 681[label="primRemInt (Pos vuz710) (Neg vuz700)",fontsize=16,color="burlywood",shape="box"];3500[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];681 -> 3500[label="",style="solid", color="burlywood", weight=9]; 3500 -> 709[label="",style="solid", color="burlywood", weight=3]; 3501[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];681 -> 3501[label="",style="solid", color="burlywood", weight=9]; 3501 -> 710[label="",style="solid", color="burlywood", weight=3]; 682[label="primRemInt (Neg vuz710) (Pos vuz700)",fontsize=16,color="burlywood",shape="box"];3502[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];682 -> 3502[label="",style="solid", color="burlywood", weight=9]; 3502 -> 711[label="",style="solid", color="burlywood", weight=3]; 3503[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];682 -> 3503[label="",style="solid", color="burlywood", weight=9]; 3503 -> 712[label="",style="solid", color="burlywood", weight=3]; 683[label="primRemInt (Neg vuz710) (Neg vuz700)",fontsize=16,color="burlywood",shape="box"];3504[label="vuz700/Succ vuz7000",fontsize=10,color="white",style="solid",shape="box"];683 -> 3504[label="",style="solid", color="burlywood", weight=9]; 3504 -> 713[label="",style="solid", color="burlywood", weight=3]; 3505[label="vuz700/Zero",fontsize=10,color="white",style="solid",shape="box"];683 -> 3505[label="",style="solid", color="burlywood", weight=9]; 3505 -> 714[label="",style="solid", color="burlywood", weight=3]; 1137 -> 1025[label="",style="dashed", color="red", weight=0]; 1137[label="primMinusNatS vuz880 vuz890",fontsize=16,color="magenta"];1137 -> 1188[label="",style="dashed", color="magenta", weight=3]; 1137 -> 1189[label="",style="dashed", color="magenta", weight=3]; 1138[label="Succ vuz880",fontsize=16,color="green",shape="box"];1139[label="Zero",fontsize=16,color="green",shape="box"];1140[label="Zero",fontsize=16,color="green",shape="box"];646[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3506[label="vuz380/Pos vuz3800",fontsize=10,color="white",style="solid",shape="box"];646 -> 3506[label="",style="solid", color="burlywood", weight=9]; 3506 -> 663[label="",style="solid", color="burlywood", weight=3]; 3507[label="vuz380/Neg vuz3800",fontsize=10,color="white",style="solid",shape="box"];646 -> 3507[label="",style="solid", color="burlywood", weight=9]; 3507 -> 664[label="",style="solid", color="burlywood", weight=3]; 695 -> 1480[label="",style="dashed", color="red", weight=0]; 695[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpNat (Succ vuz3200) vuz720 == LT))",fontsize=16,color="magenta"];695 -> 1481[label="",style="dashed", color="magenta", weight=3]; 695 -> 1482[label="",style="dashed", color="magenta", weight=3]; 695 -> 1483[label="",style="dashed", color="magenta", weight=3]; 696[label="absReal1 (Pos (Succ vuz3200)) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];696 -> 733[label="",style="solid", color="black", weight=3]; 697[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];697 -> 734[label="",style="solid", color="black", weight=3]; 698[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];698 -> 735[label="",style="solid", color="black", weight=3]; 699[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];699 -> 736[label="",style="solid", color="black", weight=3]; 700[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];700 -> 737[label="",style="solid", color="black", weight=3]; 701[label="absReal1 (Neg (Succ vuz3200)) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];701 -> 738[label="",style="solid", color="black", weight=3]; 702 -> 1628[label="",style="dashed", color="red", weight=0]; 702[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpNat vuz720 (Succ vuz3200) == LT))",fontsize=16,color="magenta"];702 -> 1629[label="",style="dashed", color="magenta", weight=3]; 702 -> 1630[label="",style="dashed", color="magenta", weight=3]; 702 -> 1631[label="",style="dashed", color="magenta", weight=3]; 703[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];703 -> 741[label="",style="solid", color="black", weight=3]; 704[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];704 -> 742[label="",style="solid", color="black", weight=3]; 705[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];705 -> 743[label="",style="solid", color="black", weight=3]; 706[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];706 -> 744[label="",style="solid", color="black", weight=3]; 707[label="primRemInt (Pos vuz710) (Pos (Succ vuz7000))",fontsize=16,color="black",shape="box"];707 -> 745[label="",style="solid", color="black", weight=3]; 708[label="primRemInt (Pos vuz710) (Pos Zero)",fontsize=16,color="black",shape="box"];708 -> 746[label="",style="solid", color="black", weight=3]; 709[label="primRemInt (Pos vuz710) (Neg (Succ vuz7000))",fontsize=16,color="black",shape="box"];709 -> 747[label="",style="solid", color="black", weight=3]; 710[label="primRemInt (Pos vuz710) (Neg Zero)",fontsize=16,color="black",shape="box"];710 -> 748[label="",style="solid", color="black", weight=3]; 711[label="primRemInt (Neg vuz710) (Pos (Succ vuz7000))",fontsize=16,color="black",shape="box"];711 -> 749[label="",style="solid", color="black", weight=3]; 712[label="primRemInt (Neg vuz710) (Pos Zero)",fontsize=16,color="black",shape="box"];712 -> 750[label="",style="solid", color="black", weight=3]; 713[label="primRemInt (Neg vuz710) (Neg (Succ vuz7000))",fontsize=16,color="black",shape="box"];713 -> 751[label="",style="solid", color="black", weight=3]; 714[label="primRemInt (Neg vuz710) (Neg Zero)",fontsize=16,color="black",shape="box"];714 -> 752[label="",style="solid", color="black", weight=3]; 1188[label="vuz880",fontsize=16,color="green",shape="box"];1189[label="vuz890",fontsize=16,color="green",shape="box"];663[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3508[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];663 -> 3508[label="",style="solid", color="burlywood", weight=9]; 3508 -> 684[label="",style="solid", color="burlywood", weight=3]; 3509[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];663 -> 3509[label="",style="solid", color="burlywood", weight=9]; 3509 -> 685[label="",style="solid", color="burlywood", weight=3]; 664[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3510[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];664 -> 3510[label="",style="solid", color="burlywood", weight=9]; 3510 -> 686[label="",style="solid", color="burlywood", weight=3]; 3511[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];664 -> 3511[label="",style="solid", color="burlywood", weight=9]; 3511 -> 687[label="",style="solid", color="burlywood", weight=3]; 1481[label="vuz720",fontsize=16,color="green",shape="box"];1482[label="vuz3200",fontsize=16,color="green",shape="box"];1483[label="Succ vuz3200",fontsize=16,color="green",shape="box"];1480[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz105 vuz106 == LT))",fontsize=16,color="burlywood",shape="triangle"];3512[label="vuz105/Succ vuz1050",fontsize=10,color="white",style="solid",shape="box"];1480 -> 3512[label="",style="solid", color="burlywood", weight=9]; 3512 -> 1504[label="",style="solid", color="burlywood", weight=3]; 3513[label="vuz105/Zero",fontsize=10,color="white",style="solid",shape="box"];1480 -> 3513[label="",style="solid", color="burlywood", weight=9]; 3513 -> 1505[label="",style="solid", color="burlywood", weight=3]; 733[label="absReal1 (Pos (Succ vuz3200)) (not False)",fontsize=16,color="black",shape="triangle"];733 -> 774[label="",style="solid", color="black", weight=3]; 734[label="absReal1 (Pos Zero) (not (primCmpNat Zero (Succ vuz7200) == LT))",fontsize=16,color="black",shape="box"];734 -> 775[label="",style="solid", color="black", weight=3]; 735[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];735 -> 776[label="",style="solid", color="black", weight=3]; 736[label="absReal1 (Pos Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];736 -> 777[label="",style="solid", color="black", weight=3]; 737 -> 735[label="",style="dashed", color="red", weight=0]; 737[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="magenta"];738[label="absReal1 (Neg (Succ vuz3200)) (not True)",fontsize=16,color="black",shape="box"];738 -> 778[label="",style="solid", color="black", weight=3]; 1629[label="vuz3200",fontsize=16,color="green",shape="box"];1630[label="Succ vuz3200",fontsize=16,color="green",shape="box"];1631[label="vuz720",fontsize=16,color="green",shape="box"];1628[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat vuz113 vuz114 == LT))",fontsize=16,color="burlywood",shape="triangle"];3514[label="vuz113/Succ vuz1130",fontsize=10,color="white",style="solid",shape="box"];1628 -> 3514[label="",style="solid", color="burlywood", weight=9]; 3514 -> 1653[label="",style="solid", color="burlywood", weight=3]; 3515[label="vuz113/Zero",fontsize=10,color="white",style="solid",shape="box"];1628 -> 3515[label="",style="solid", color="burlywood", weight=9]; 3515 -> 1654[label="",style="solid", color="burlywood", weight=3]; 741[label="absReal1 (Neg Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];741 -> 781[label="",style="solid", color="black", weight=3]; 742[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];742 -> 782[label="",style="solid", color="black", weight=3]; 743[label="absReal1 (Neg Zero) (not (primCmpNat (Succ vuz7200) Zero == LT))",fontsize=16,color="black",shape="box"];743 -> 783[label="",style="solid", color="black", weight=3]; 744 -> 742[label="",style="dashed", color="red", weight=0]; 744[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="magenta"];745[label="Pos (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];745 -> 784[label="",style="dashed", color="green", weight=3]; 746 -> 486[label="",style="dashed", color="red", weight=0]; 746[label="error []",fontsize=16,color="magenta"];747[label="Pos (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];747 -> 785[label="",style="dashed", color="green", weight=3]; 748 -> 486[label="",style="dashed", color="red", weight=0]; 748[label="error []",fontsize=16,color="magenta"];749[label="Neg (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];749 -> 786[label="",style="dashed", color="green", weight=3]; 750 -> 486[label="",style="dashed", color="red", weight=0]; 750[label="error []",fontsize=16,color="magenta"];751[label="Neg (primModNatS vuz710 (Succ vuz7000))",fontsize=16,color="green",shape="box"];751 -> 787[label="",style="dashed", color="green", weight=3]; 752 -> 486[label="",style="dashed", color="red", weight=0]; 752[label="error []",fontsize=16,color="magenta"];684[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3516[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];684 -> 3516[label="",style="solid", color="burlywood", weight=9]; 3516 -> 715[label="",style="solid", color="burlywood", weight=3]; 3517[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];684 -> 3517[label="",style="solid", color="burlywood", weight=9]; 3517 -> 716[label="",style="solid", color="burlywood", weight=3]; 685[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3518[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];685 -> 3518[label="",style="solid", color="burlywood", weight=9]; 3518 -> 717[label="",style="solid", color="burlywood", weight=3]; 3519[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];685 -> 3519[label="",style="solid", color="burlywood", weight=9]; 3519 -> 718[label="",style="solid", color="burlywood", weight=3]; 686[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3520[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];686 -> 3520[label="",style="solid", color="burlywood", weight=9]; 3520 -> 719[label="",style="solid", color="burlywood", weight=3]; 3521[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];686 -> 3521[label="",style="solid", color="burlywood", weight=9]; 3521 -> 720[label="",style="solid", color="burlywood", weight=3]; 687[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz690 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz690 == LT)))",fontsize=16,color="burlywood",shape="box"];3522[label="vuz690/Pos vuz6900",fontsize=10,color="white",style="solid",shape="box"];687 -> 3522[label="",style="solid", color="burlywood", weight=9]; 3522 -> 721[label="",style="solid", color="burlywood", weight=3]; 3523[label="vuz690/Neg vuz6900",fontsize=10,color="white",style="solid",shape="box"];687 -> 3523[label="",style="solid", color="burlywood", weight=9]; 3523 -> 722[label="",style="solid", color="burlywood", weight=3]; 1504[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3524[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1504 -> 3524[label="",style="solid", color="burlywood", weight=9]; 3524 -> 1509[label="",style="solid", color="burlywood", weight=3]; 3525[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1504 -> 3525[label="",style="solid", color="burlywood", weight=9]; 3525 -> 1510[label="",style="solid", color="burlywood", weight=3]; 1505[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3526[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1505 -> 3526[label="",style="solid", color="burlywood", weight=9]; 3526 -> 1511[label="",style="solid", color="burlywood", weight=3]; 3527[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1505 -> 3527[label="",style="solid", color="burlywood", weight=9]; 3527 -> 1512[label="",style="solid", color="burlywood", weight=3]; 774[label="absReal1 (Pos (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];774 -> 811[label="",style="solid", color="black", weight=3]; 775[label="absReal1 (Pos Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];775 -> 812[label="",style="solid", color="black", weight=3]; 776[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="triangle"];776 -> 813[label="",style="solid", color="black", weight=3]; 777 -> 776[label="",style="dashed", color="red", weight=0]; 777[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="magenta"];778[label="absReal1 (Neg (Succ vuz3200)) False",fontsize=16,color="black",shape="box"];778 -> 814[label="",style="solid", color="black", weight=3]; 1653[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat (Succ vuz1130) vuz114 == LT))",fontsize=16,color="burlywood",shape="box"];3528[label="vuz114/Succ vuz1140",fontsize=10,color="white",style="solid",shape="box"];1653 -> 3528[label="",style="solid", color="burlywood", weight=9]; 3528 -> 1692[label="",style="solid", color="burlywood", weight=3]; 3529[label="vuz114/Zero",fontsize=10,color="white",style="solid",shape="box"];1653 -> 3529[label="",style="solid", color="burlywood", weight=9]; 3529 -> 1693[label="",style="solid", color="burlywood", weight=3]; 1654[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat Zero vuz114 == LT))",fontsize=16,color="burlywood",shape="box"];3530[label="vuz114/Succ vuz1140",fontsize=10,color="white",style="solid",shape="box"];1654 -> 3530[label="",style="solid", color="burlywood", weight=9]; 3530 -> 1694[label="",style="solid", color="burlywood", weight=3]; 3531[label="vuz114/Zero",fontsize=10,color="white",style="solid",shape="box"];1654 -> 3531[label="",style="solid", color="burlywood", weight=9]; 3531 -> 1695[label="",style="solid", color="burlywood", weight=3]; 781[label="absReal1 (Neg Zero) (not True)",fontsize=16,color="black",shape="box"];781 -> 817[label="",style="solid", color="black", weight=3]; 782[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="triangle"];782 -> 818[label="",style="solid", color="black", weight=3]; 783[label="absReal1 (Neg Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];783 -> 819[label="",style="solid", color="black", weight=3]; 784[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="burlywood",shape="triangle"];3532[label="vuz710/Succ vuz7100",fontsize=10,color="white",style="solid",shape="box"];784 -> 3532[label="",style="solid", color="burlywood", weight=9]; 3532 -> 820[label="",style="solid", color="burlywood", weight=3]; 3533[label="vuz710/Zero",fontsize=10,color="white",style="solid",shape="box"];784 -> 3533[label="",style="solid", color="burlywood", weight=9]; 3533 -> 821[label="",style="solid", color="burlywood", weight=3]; 785 -> 784[label="",style="dashed", color="red", weight=0]; 785[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="magenta"];785 -> 822[label="",style="dashed", color="magenta", weight=3]; 786 -> 784[label="",style="dashed", color="red", weight=0]; 786[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="magenta"];786 -> 823[label="",style="dashed", color="magenta", weight=3]; 787 -> 784[label="",style="dashed", color="red", weight=0]; 787[label="primModNatS vuz710 (Succ vuz7000)",fontsize=16,color="magenta"];787 -> 824[label="",style="dashed", color="magenta", weight=3]; 787 -> 825[label="",style="dashed", color="magenta", weight=3]; 715[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz6900) == LT)))",fontsize=16,color="black",shape="box"];715 -> 753[label="",style="solid", color="black", weight=3]; 716[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz6900) == LT)))",fontsize=16,color="black",shape="box"];716 -> 754[label="",style="solid", color="black", weight=3]; 717[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3534[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];717 -> 3534[label="",style="solid", color="burlywood", weight=9]; 3534 -> 755[label="",style="solid", color="burlywood", weight=3]; 3535[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];717 -> 3535[label="",style="solid", color="burlywood", weight=9]; 3535 -> 756[label="",style="solid", color="burlywood", weight=3]; 718[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3536[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];718 -> 3536[label="",style="solid", color="burlywood", weight=9]; 3536 -> 757[label="",style="solid", color="burlywood", weight=3]; 3537[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];718 -> 3537[label="",style="solid", color="burlywood", weight=9]; 3537 -> 758[label="",style="solid", color="burlywood", weight=3]; 719[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz6900) == LT)))",fontsize=16,color="black",shape="box"];719 -> 759[label="",style="solid", color="black", weight=3]; 720[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz6900) == LT)))",fontsize=16,color="black",shape="box"];720 -> 760[label="",style="solid", color="black", weight=3]; 721[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3538[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];721 -> 3538[label="",style="solid", color="burlywood", weight=9]; 3538 -> 761[label="",style="solid", color="burlywood", weight=3]; 3539[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];721 -> 3539[label="",style="solid", color="burlywood", weight=9]; 3539 -> 762[label="",style="solid", color="burlywood", weight=3]; 722[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz6900) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz6900) == LT)))",fontsize=16,color="burlywood",shape="box"];3540[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];722 -> 3540[label="",style="solid", color="burlywood", weight=9]; 3540 -> 763[label="",style="solid", color="burlywood", weight=3]; 3541[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];722 -> 3541[label="",style="solid", color="burlywood", weight=9]; 3541 -> 764[label="",style="solid", color="burlywood", weight=3]; 1509[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1509 -> 1522[label="",style="solid", color="black", weight=3]; 1510[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) Zero == LT))",fontsize=16,color="black",shape="box"];1510 -> 1523[label="",style="solid", color="black", weight=3]; 1511[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1511 -> 1524[label="",style="solid", color="black", weight=3]; 1512[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1512 -> 1525[label="",style="solid", color="black", weight=3]; 811[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];812[label="absReal1 (Pos Zero) (not True)",fontsize=16,color="black",shape="box"];812 -> 850[label="",style="solid", color="black", weight=3]; 813[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];813 -> 851[label="",style="solid", color="black", weight=3]; 814[label="absReal0 (Neg (Succ vuz3200)) otherwise",fontsize=16,color="black",shape="box"];814 -> 852[label="",style="solid", color="black", weight=3]; 1692[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat (Succ vuz1130) (Succ vuz1140) == LT))",fontsize=16,color="black",shape="box"];1692 -> 1738[label="",style="solid", color="black", weight=3]; 1693[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat (Succ vuz1130) Zero == LT))",fontsize=16,color="black",shape="box"];1693 -> 1739[label="",style="solid", color="black", weight=3]; 1694[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat Zero (Succ vuz1140) == LT))",fontsize=16,color="black",shape="box"];1694 -> 1740[label="",style="solid", color="black", weight=3]; 1695[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1695 -> 1741[label="",style="solid", color="black", weight=3]; 817[label="absReal1 (Neg Zero) False",fontsize=16,color="black",shape="box"];817 -> 857[label="",style="solid", color="black", weight=3]; 818[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];818 -> 858[label="",style="solid", color="black", weight=3]; 819 -> 782[label="",style="dashed", color="red", weight=0]; 819[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="magenta"];820[label="primModNatS (Succ vuz7100) (Succ vuz7000)",fontsize=16,color="black",shape="box"];820 -> 859[label="",style="solid", color="black", weight=3]; 821[label="primModNatS Zero (Succ vuz7000)",fontsize=16,color="black",shape="box"];821 -> 860[label="",style="solid", color="black", weight=3]; 822[label="vuz7000",fontsize=16,color="green",shape="box"];823[label="vuz710",fontsize=16,color="green",shape="box"];824[label="vuz7000",fontsize=16,color="green",shape="box"];825[label="vuz710",fontsize=16,color="green",shape="box"];753 -> 2120[label="",style="dashed", color="red", weight=0]; 753[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz6900 == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz6900 == LT)))",fontsize=16,color="magenta"];753 -> 2121[label="",style="dashed", color="magenta", weight=3]; 753 -> 2122[label="",style="dashed", color="magenta", weight=3]; 753 -> 2123[label="",style="dashed", color="magenta", weight=3]; 753 -> 2124[label="",style="dashed", color="magenta", weight=3]; 753 -> 2125[label="",style="dashed", color="magenta", weight=3]; 753 -> 2126[label="",style="dashed", color="magenta", weight=3]; 754[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];754 -> 790[label="",style="solid", color="black", weight=3]; 755[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];755 -> 791[label="",style="solid", color="black", weight=3]; 756[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];756 -> 792[label="",style="solid", color="black", weight=3]; 757[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];757 -> 793[label="",style="solid", color="black", weight=3]; 758[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];758 -> 794[label="",style="solid", color="black", weight=3]; 759[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];759 -> 795[label="",style="solid", color="black", weight=3]; 760 -> 2222[label="",style="dashed", color="red", weight=0]; 760[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz6900 (Succ vuz38000) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz6900 (Succ vuz38000) == LT)))",fontsize=16,color="magenta"];760 -> 2223[label="",style="dashed", color="magenta", weight=3]; 760 -> 2224[label="",style="dashed", color="magenta", weight=3]; 760 -> 2225[label="",style="dashed", color="magenta", weight=3]; 760 -> 2226[label="",style="dashed", color="magenta", weight=3]; 760 -> 2227[label="",style="dashed", color="magenta", weight=3]; 760 -> 2228[label="",style="dashed", color="magenta", weight=3]; 761[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];761 -> 798[label="",style="solid", color="black", weight=3]; 762[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];762 -> 799[label="",style="solid", color="black", weight=3]; 763[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz69000)) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz69000)) == LT)))",fontsize=16,color="black",shape="box"];763 -> 800[label="",style="solid", color="black", weight=3]; 764[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];764 -> 801[label="",style="solid", color="black", weight=3]; 1522 -> 1480[label="",style="dashed", color="red", weight=0]; 1522[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz1050 vuz1060 == LT))",fontsize=16,color="magenta"];1522 -> 1559[label="",style="dashed", color="magenta", weight=3]; 1522 -> 1560[label="",style="dashed", color="magenta", weight=3]; 1523 -> 696[label="",style="dashed", color="red", weight=0]; 1523[label="absReal1 (Pos (Succ vuz104)) (not (GT == LT))",fontsize=16,color="magenta"];1523 -> 1561[label="",style="dashed", color="magenta", weight=3]; 1524[label="absReal1 (Pos (Succ vuz104)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1524 -> 1562[label="",style="solid", color="black", weight=3]; 1525[label="absReal1 (Pos (Succ vuz104)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1525 -> 1563[label="",style="solid", color="black", weight=3]; 850[label="absReal1 (Pos Zero) False",fontsize=16,color="black",shape="box"];850 -> 890[label="",style="solid", color="black", weight=3]; 851[label="Pos Zero",fontsize=16,color="green",shape="box"];852[label="absReal0 (Neg (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];852 -> 891[label="",style="solid", color="black", weight=3]; 1738 -> 1628[label="",style="dashed", color="red", weight=0]; 1738[label="absReal1 (Neg (Succ vuz112)) (not (primCmpNat vuz1130 vuz1140 == LT))",fontsize=16,color="magenta"];1738 -> 1748[label="",style="dashed", color="magenta", weight=3]; 1738 -> 1749[label="",style="dashed", color="magenta", weight=3]; 1739[label="absReal1 (Neg (Succ vuz112)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1739 -> 1750[label="",style="solid", color="black", weight=3]; 1740 -> 701[label="",style="dashed", color="red", weight=0]; 1740[label="absReal1 (Neg (Succ vuz112)) (not (LT == LT))",fontsize=16,color="magenta"];1740 -> 1751[label="",style="dashed", color="magenta", weight=3]; 1741[label="absReal1 (Neg (Succ vuz112)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1741 -> 1752[label="",style="solid", color="black", weight=3]; 857[label="absReal0 (Neg Zero) otherwise",fontsize=16,color="black",shape="box"];857 -> 896[label="",style="solid", color="black", weight=3]; 858[label="Neg Zero",fontsize=16,color="green",shape="box"];859[label="primModNatS0 vuz7100 vuz7000 (primGEqNatS vuz7100 vuz7000)",fontsize=16,color="burlywood",shape="box"];3542[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];859 -> 3542[label="",style="solid", color="burlywood", weight=9]; 3542 -> 897[label="",style="solid", color="burlywood", weight=3]; 3543[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];859 -> 3543[label="",style="solid", color="burlywood", weight=9]; 3543 -> 898[label="",style="solid", color="burlywood", weight=3]; 860[label="Zero",fontsize=16,color="green",shape="box"];2121[label="vuz38000",fontsize=16,color="green",shape="box"];2122[label="vuz6900",fontsize=16,color="green",shape="box"];2123[label="vuz62",fontsize=16,color="green",shape="box"];2124[label="vuz300",fontsize=16,color="green",shape="box"];2125[label="vuz290",fontsize=16,color="green",shape="box"];2126[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2120[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz138 vuz139 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz138 vuz139 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3544[label="vuz138/Succ vuz1380",fontsize=10,color="white",style="solid",shape="box"];2120 -> 3544[label="",style="solid", color="burlywood", weight=9]; 3544 -> 2181[label="",style="solid", color="burlywood", weight=3]; 3545[label="vuz138/Zero",fontsize=10,color="white",style="solid",shape="box"];2120 -> 3545[label="",style="solid", color="burlywood", weight=9]; 3545 -> 2182[label="",style="solid", color="burlywood", weight=3]; 790[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) (not False))",fontsize=16,color="black",shape="triangle"];790 -> 828[label="",style="solid", color="black", weight=3]; 791[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz69000) == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz69000) == LT)))",fontsize=16,color="black",shape="box"];791 -> 829[label="",style="solid", color="black", weight=3]; 792[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];792 -> 830[label="",style="solid", color="black", weight=3]; 793[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];793 -> 831[label="",style="solid", color="black", weight=3]; 794 -> 792[label="",style="dashed", color="red", weight=0]; 794[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];795[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not True) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) (not True))",fontsize=16,color="black",shape="box"];795 -> 832[label="",style="solid", color="black", weight=3]; 2223[label="vuz300",fontsize=16,color="green",shape="box"];2224[label="vuz62",fontsize=16,color="green",shape="box"];2225[label="vuz290",fontsize=16,color="green",shape="box"];2226[label="vuz6900",fontsize=16,color="green",shape="box"];2227[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2228[label="vuz38000",fontsize=16,color="green",shape="box"];2222[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz148 vuz149 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz148 vuz149 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3546[label="vuz148/Succ vuz1480",fontsize=10,color="white",style="solid",shape="box"];2222 -> 3546[label="",style="solid", color="burlywood", weight=9]; 3546 -> 2283[label="",style="solid", color="burlywood", weight=3]; 3547[label="vuz148/Zero",fontsize=10,color="white",style="solid",shape="box"];2222 -> 3547[label="",style="solid", color="burlywood", weight=9]; 3547 -> 2284[label="",style="solid", color="burlywood", weight=3]; 798[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];798 -> 835[label="",style="solid", color="black", weight=3]; 799[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];799 -> 836[label="",style="solid", color="black", weight=3]; 800[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz69000) Zero == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz69000) Zero == LT)))",fontsize=16,color="black",shape="box"];800 -> 837[label="",style="solid", color="black", weight=3]; 801 -> 799[label="",style="dashed", color="red", weight=0]; 801[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];1559[label="vuz1060",fontsize=16,color="green",shape="box"];1560[label="vuz1050",fontsize=16,color="green",shape="box"];1561[label="vuz104",fontsize=16,color="green",shape="box"];1562[label="absReal1 (Pos (Succ vuz104)) (not True)",fontsize=16,color="black",shape="box"];1562 -> 1600[label="",style="solid", color="black", weight=3]; 1563 -> 733[label="",style="dashed", color="red", weight=0]; 1563[label="absReal1 (Pos (Succ vuz104)) (not False)",fontsize=16,color="magenta"];1563 -> 1601[label="",style="dashed", color="magenta", weight=3]; 890[label="absReal0 (Pos Zero) otherwise",fontsize=16,color="black",shape="box"];890 -> 933[label="",style="solid", color="black", weight=3]; 891[label="`negate` Neg (Succ vuz3200)",fontsize=16,color="black",shape="box"];891 -> 934[label="",style="solid", color="black", weight=3]; 1748[label="vuz1140",fontsize=16,color="green",shape="box"];1749[label="vuz1130",fontsize=16,color="green",shape="box"];1750[label="absReal1 (Neg (Succ vuz112)) (not False)",fontsize=16,color="black",shape="triangle"];1750 -> 1756[label="",style="solid", color="black", weight=3]; 1751[label="vuz112",fontsize=16,color="green",shape="box"];1752 -> 1750[label="",style="dashed", color="red", weight=0]; 1752[label="absReal1 (Neg (Succ vuz112)) (not False)",fontsize=16,color="magenta"];896[label="absReal0 (Neg Zero) True",fontsize=16,color="black",shape="box"];896 -> 940[label="",style="solid", color="black", weight=3]; 897[label="primModNatS0 (Succ vuz71000) vuz7000 (primGEqNatS (Succ vuz71000) vuz7000)",fontsize=16,color="burlywood",shape="box"];3548[label="vuz7000/Succ vuz70000",fontsize=10,color="white",style="solid",shape="box"];897 -> 3548[label="",style="solid", color="burlywood", weight=9]; 3548 -> 941[label="",style="solid", color="burlywood", weight=3]; 3549[label="vuz7000/Zero",fontsize=10,color="white",style="solid",shape="box"];897 -> 3549[label="",style="solid", color="burlywood", weight=9]; 3549 -> 942[label="",style="solid", color="burlywood", weight=3]; 898[label="primModNatS0 Zero vuz7000 (primGEqNatS Zero vuz7000)",fontsize=16,color="burlywood",shape="box"];3550[label="vuz7000/Succ vuz70000",fontsize=10,color="white",style="solid",shape="box"];898 -> 3550[label="",style="solid", color="burlywood", weight=9]; 3550 -> 943[label="",style="solid", color="burlywood", weight=3]; 3551[label="vuz7000/Zero",fontsize=10,color="white",style="solid",shape="box"];898 -> 3551[label="",style="solid", color="burlywood", weight=9]; 3551 -> 944[label="",style="solid", color="burlywood", weight=3]; 2181[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) vuz139 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) vuz139 == LT)))",fontsize=16,color="burlywood",shape="box"];3552[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2181 -> 3552[label="",style="solid", color="burlywood", weight=9]; 3552 -> 2192[label="",style="solid", color="burlywood", weight=3]; 3553[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2181 -> 3553[label="",style="solid", color="burlywood", weight=9]; 3553 -> 2193[label="",style="solid", color="burlywood", weight=3]; 2182[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero vuz139 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero vuz139 == LT)))",fontsize=16,color="burlywood",shape="box"];3554[label="vuz139/Succ vuz1390",fontsize=10,color="white",style="solid",shape="box"];2182 -> 3554[label="",style="solid", color="burlywood", weight=9]; 3554 -> 2194[label="",style="solid", color="burlywood", weight=3]; 3555[label="vuz139/Zero",fontsize=10,color="white",style="solid",shape="box"];2182 -> 3555[label="",style="solid", color="burlywood", weight=9]; 3555 -> 2195[label="",style="solid", color="burlywood", weight=3]; 828[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) True == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];828 -> 863[label="",style="solid", color="black", weight=3]; 829[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];829 -> 864[label="",style="solid", color="black", weight=3]; 830[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="black",shape="triangle"];830 -> 865[label="",style="solid", color="black", weight=3]; 831 -> 830[label="",style="dashed", color="red", weight=0]; 831[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="magenta"];832[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) False == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg (Succ vuz38000))) False)",fontsize=16,color="black",shape="box"];832 -> 866[label="",style="solid", color="black", weight=3]; 2283[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) vuz149 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) vuz149 == LT)))",fontsize=16,color="burlywood",shape="box"];3556[label="vuz149/Succ vuz1490",fontsize=10,color="white",style="solid",shape="box"];2283 -> 3556[label="",style="solid", color="burlywood", weight=9]; 3556 -> 2336[label="",style="solid", color="burlywood", weight=3]; 3557[label="vuz149/Zero",fontsize=10,color="white",style="solid",shape="box"];2283 -> 3557[label="",style="solid", color="burlywood", weight=9]; 3557 -> 2337[label="",style="solid", color="burlywood", weight=3]; 2284[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero vuz149 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero vuz149 == LT)))",fontsize=16,color="burlywood",shape="box"];3558[label="vuz149/Succ vuz1490",fontsize=10,color="white",style="solid",shape="box"];2284 -> 3558[label="",style="solid", color="burlywood", weight=9]; 3558 -> 2338[label="",style="solid", color="burlywood", weight=3]; 3559[label="vuz149/Zero",fontsize=10,color="white",style="solid",shape="box"];2284 -> 3559[label="",style="solid", color="burlywood", weight=9]; 3559 -> 2339[label="",style="solid", color="burlywood", weight=3]; 835[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not True))",fontsize=16,color="black",shape="box"];835 -> 869[label="",style="solid", color="black", weight=3]; 836[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="black",shape="triangle"];836 -> 870[label="",style="solid", color="black", weight=3]; 837[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];837 -> 871[label="",style="solid", color="black", weight=3]; 1600[label="absReal1 (Pos (Succ vuz104)) False",fontsize=16,color="black",shape="box"];1600 -> 1655[label="",style="solid", color="black", weight=3]; 1601[label="vuz104",fontsize=16,color="green",shape="box"];933[label="absReal0 (Pos Zero) True",fontsize=16,color="black",shape="box"];933 -> 962[label="",style="solid", color="black", weight=3]; 934[label="primNegInt (Neg (Succ vuz3200))",fontsize=16,color="black",shape="triangle"];934 -> 963[label="",style="solid", color="black", weight=3]; 1756[label="absReal1 (Neg (Succ vuz112)) True",fontsize=16,color="black",shape="box"];1756 -> 1792[label="",style="solid", color="black", weight=3]; 940[label="`negate` Neg Zero",fontsize=16,color="black",shape="box"];940 -> 969[label="",style="solid", color="black", weight=3]; 941[label="primModNatS0 (Succ vuz71000) (Succ vuz70000) (primGEqNatS (Succ vuz71000) (Succ vuz70000))",fontsize=16,color="black",shape="box"];941 -> 970[label="",style="solid", color="black", weight=3]; 942[label="primModNatS0 (Succ vuz71000) Zero (primGEqNatS (Succ vuz71000) Zero)",fontsize=16,color="black",shape="box"];942 -> 971[label="",style="solid", color="black", weight=3]; 943[label="primModNatS0 Zero (Succ vuz70000) (primGEqNatS Zero (Succ vuz70000))",fontsize=16,color="black",shape="box"];943 -> 972[label="",style="solid", color="black", weight=3]; 944[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];944 -> 973[label="",style="solid", color="black", weight=3]; 2192[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) (Succ vuz1390) == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) (Succ vuz1390) == LT)))",fontsize=16,color="black",shape="box"];2192 -> 2285[label="",style="solid", color="black", weight=3]; 2193[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) Zero == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat (Succ vuz1380) Zero == LT)))",fontsize=16,color="black",shape="box"];2193 -> 2286[label="",style="solid", color="black", weight=3]; 2194[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero (Succ vuz1390) == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero (Succ vuz1390) == LT)))",fontsize=16,color="black",shape="box"];2194 -> 2287[label="",style="solid", color="black", weight=3]; 2195[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero Zero == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2195 -> 2288[label="",style="solid", color="black", weight=3]; 863 -> 1122[label="",style="dashed", color="red", weight=0]; 863[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz38000)) == vuz62) (abs (Integer vuz300)) (Integer (Pos (Succ vuz38000)))",fontsize=16,color="magenta"];863 -> 1123[label="",style="dashed", color="magenta", weight=3]; 863 -> 1124[label="",style="dashed", color="magenta", weight=3]; 864[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) (not True))",fontsize=16,color="black",shape="box"];864 -> 978[label="",style="solid", color="black", weight=3]; 865[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];865 -> 979[label="",style="solid", color="black", weight=3]; 866[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) otherwise == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg (Succ vuz38000))) otherwise)",fontsize=16,color="black",shape="box"];866 -> 980[label="",style="solid", color="black", weight=3]; 2336[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) (Succ vuz1490) == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) (Succ vuz1490) == LT)))",fontsize=16,color="black",shape="box"];2336 -> 2384[label="",style="solid", color="black", weight=3]; 2337[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) Zero == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat (Succ vuz1480) Zero == LT)))",fontsize=16,color="black",shape="box"];2337 -> 2385[label="",style="solid", color="black", weight=3]; 2338[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero (Succ vuz1490) == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero (Succ vuz1490) == LT)))",fontsize=16,color="black",shape="box"];2338 -> 2386[label="",style="solid", color="black", weight=3]; 2339[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero Zero == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2339 -> 2387[label="",style="solid", color="black", weight=3]; 869[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) False)",fontsize=16,color="black",shape="box"];869 -> 985[label="",style="solid", color="black", weight=3]; 870[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];870 -> 986[label="",style="solid", color="black", weight=3]; 871 -> 836[label="",style="dashed", color="red", weight=0]; 871[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="magenta"];1655[label="absReal0 (Pos (Succ vuz104)) otherwise",fontsize=16,color="black",shape="box"];1655 -> 1696[label="",style="solid", color="black", weight=3]; 962[label="`negate` Pos Zero",fontsize=16,color="black",shape="box"];962 -> 1002[label="",style="solid", color="black", weight=3]; 963[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];1792[label="Neg (Succ vuz112)",fontsize=16,color="green",shape="box"];969[label="primNegInt (Neg Zero)",fontsize=16,color="black",shape="triangle"];969 -> 1008[label="",style="solid", color="black", weight=3]; 970 -> 2415[label="",style="dashed", color="red", weight=0]; 970[label="primModNatS0 (Succ vuz71000) (Succ vuz70000) (primGEqNatS vuz71000 vuz70000)",fontsize=16,color="magenta"];970 -> 2416[label="",style="dashed", color="magenta", weight=3]; 970 -> 2417[label="",style="dashed", color="magenta", weight=3]; 970 -> 2418[label="",style="dashed", color="magenta", weight=3]; 970 -> 2419[label="",style="dashed", color="magenta", weight=3]; 971[label="primModNatS0 (Succ vuz71000) Zero True",fontsize=16,color="black",shape="box"];971 -> 1011[label="",style="solid", color="black", weight=3]; 972[label="primModNatS0 Zero (Succ vuz70000) False",fontsize=16,color="black",shape="box"];972 -> 1012[label="",style="solid", color="black", weight=3]; 973[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];973 -> 1013[label="",style="solid", color="black", weight=3]; 2285 -> 2120[label="",style="dashed", color="red", weight=0]; 2285[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz1380 vuz1390 == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (primCmpNat vuz1380 vuz1390 == LT)))",fontsize=16,color="magenta"];2285 -> 2340[label="",style="dashed", color="magenta", weight=3]; 2285 -> 2341[label="",style="dashed", color="magenta", weight=3]; 2286 -> 754[label="",style="dashed", color="red", weight=0]; 2286[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (GT == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (GT == LT)))",fontsize=16,color="magenta"];2286 -> 2342[label="",style="dashed", color="magenta", weight=3]; 2286 -> 2343[label="",style="dashed", color="magenta", weight=3]; 2286 -> 2344[label="",style="dashed", color="magenta", weight=3]; 2286 -> 2345[label="",style="dashed", color="magenta", weight=3]; 2287[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (LT == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (LT == LT)))",fontsize=16,color="black",shape="box"];2287 -> 2346[label="",style="solid", color="black", weight=3]; 2288[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not (EQ == LT)) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2288 -> 2347[label="",style="solid", color="black", weight=3]; 1123[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1124 -> 215[label="",style="dashed", color="red", weight=0]; 1124[label="Integer (Pos (Succ vuz38000)) == vuz62",fontsize=16,color="magenta"];1124 -> 1141[label="",style="dashed", color="magenta", weight=3]; 1124 -> 1142[label="",style="dashed", color="magenta", weight=3]; 1122[label="Integer vuz290 `quot` gcd0Gcd'1 vuz93 (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="burlywood",shape="triangle"];3560[label="vuz93/False",fontsize=10,color="white",style="solid",shape="box"];1122 -> 3560[label="",style="solid", color="burlywood", weight=9]; 3560 -> 1143[label="",style="solid", color="burlywood", weight=3]; 3561[label="vuz93/True",fontsize=10,color="white",style="solid",shape="box"];1122 -> 3561[label="",style="solid", color="burlywood", weight=9]; 3561 -> 1144[label="",style="solid", color="burlywood", weight=3]; 978[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False == vuz62) (abs (Integer vuz300)) (absReal1 (Integer (Pos Zero)) False)",fontsize=16,color="black",shape="box"];978 -> 1022[label="",style="solid", color="black", weight=3]; 979 -> 1122[label="",style="dashed", color="red", weight=0]; 979[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos Zero) == vuz62) (abs (Integer vuz300)) (Integer (Pos Zero))",fontsize=16,color="magenta"];979 -> 1127[label="",style="dashed", color="magenta", weight=3]; 979 -> 1128[label="",style="dashed", color="magenta", weight=3]; 980[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) True == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];980 -> 1026[label="",style="solid", color="black", weight=3]; 2384 -> 2222[label="",style="dashed", color="red", weight=0]; 2384[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz1480 vuz1490 == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (primCmpNat vuz1480 vuz1490 == LT)))",fontsize=16,color="magenta"];2384 -> 2456[label="",style="dashed", color="magenta", weight=3]; 2384 -> 2457[label="",style="dashed", color="magenta", weight=3]; 2385[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (GT == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (GT == LT)))",fontsize=16,color="black",shape="box"];2385 -> 2458[label="",style="solid", color="black", weight=3]; 2386 -> 759[label="",style="dashed", color="red", weight=0]; 2386[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (LT == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (LT == LT)))",fontsize=16,color="magenta"];2386 -> 2459[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2460[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2461[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2462[label="",style="dashed", color="magenta", weight=3]; 2387[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not (EQ == LT)) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2387 -> 2463[label="",style="solid", color="black", weight=3]; 985[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg Zero)) otherwise)",fontsize=16,color="black",shape="box"];985 -> 1031[label="",style="solid", color="black", weight=3]; 986 -> 1122[label="",style="dashed", color="red", weight=0]; 986[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Neg Zero) == vuz62) (abs (Integer vuz300)) (Integer (Neg Zero))",fontsize=16,color="magenta"];986 -> 1129[label="",style="dashed", color="magenta", weight=3]; 986 -> 1130[label="",style="dashed", color="magenta", weight=3]; 1696[label="absReal0 (Pos (Succ vuz104)) True",fontsize=16,color="black",shape="box"];1696 -> 1742[label="",style="solid", color="black", weight=3]; 1002[label="primNegInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];1002 -> 1042[label="",style="solid", color="black", weight=3]; 1008[label="Pos Zero",fontsize=16,color="green",shape="box"];2416[label="vuz70000",fontsize=16,color="green",shape="box"];2417[label="vuz71000",fontsize=16,color="green",shape="box"];2418[label="vuz71000",fontsize=16,color="green",shape="box"];2419[label="vuz70000",fontsize=16,color="green",shape="box"];2415[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS vuz157 vuz158)",fontsize=16,color="burlywood",shape="triangle"];3562[label="vuz157/Succ vuz1570",fontsize=10,color="white",style="solid",shape="box"];2415 -> 3562[label="",style="solid", color="burlywood", weight=9]; 3562 -> 2464[label="",style="solid", color="burlywood", weight=3]; 3563[label="vuz157/Zero",fontsize=10,color="white",style="solid",shape="box"];2415 -> 3563[label="",style="solid", color="burlywood", weight=9]; 3563 -> 2465[label="",style="solid", color="burlywood", weight=3]; 1011 -> 784[label="",style="dashed", color="red", weight=0]; 1011[label="primModNatS (primMinusNatS (Succ vuz71000) Zero) (Succ Zero)",fontsize=16,color="magenta"];1011 -> 1052[label="",style="dashed", color="magenta", weight=3]; 1011 -> 1053[label="",style="dashed", color="magenta", weight=3]; 1012[label="Succ Zero",fontsize=16,color="green",shape="box"];1013 -> 784[label="",style="dashed", color="red", weight=0]; 1013[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1013 -> 1054[label="",style="dashed", color="magenta", weight=3]; 1013 -> 1055[label="",style="dashed", color="magenta", weight=3]; 2340[label="vuz1390",fontsize=16,color="green",shape="box"];2341[label="vuz1380",fontsize=16,color="green",shape="box"];2342[label="vuz141",fontsize=16,color="green",shape="box"];2343[label="vuz140",fontsize=16,color="green",shape="box"];2344[label="vuz137",fontsize=16,color="green",shape="box"];2345[label="vuz136",fontsize=16,color="green",shape="box"];2346[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not True) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not True))",fontsize=16,color="black",shape="box"];2346 -> 2388[label="",style="solid", color="black", weight=3]; 2347 -> 790[label="",style="dashed", color="red", weight=0]; 2347[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) (not False) == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) (not False))",fontsize=16,color="magenta"];2347 -> 2389[label="",style="dashed", color="magenta", weight=3]; 2347 -> 2390[label="",style="dashed", color="magenta", weight=3]; 2347 -> 2391[label="",style="dashed", color="magenta", weight=3]; 2347 -> 2392[label="",style="dashed", color="magenta", weight=3]; 1141[label="vuz62",fontsize=16,color="green",shape="box"];1142[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1143[label="Integer vuz290 `quot` gcd0Gcd'1 False (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1143 -> 1190[label="",style="solid", color="black", weight=3]; 1144[label="Integer vuz290 `quot` gcd0Gcd'1 True (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1144 -> 1191[label="",style="solid", color="black", weight=3]; 1022[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Pos Zero)) otherwise)",fontsize=16,color="black",shape="box"];1022 -> 1067[label="",style="solid", color="black", weight=3]; 1127[label="Pos Zero",fontsize=16,color="green",shape="box"];1128 -> 215[label="",style="dashed", color="red", weight=0]; 1128[label="Integer (Pos Zero) == vuz62",fontsize=16,color="magenta"];1128 -> 1145[label="",style="dashed", color="magenta", weight=3]; 1128 -> 1146[label="",style="dashed", color="magenta", weight=3]; 1026[label="Integer vuz290 `quot` gcd0Gcd'1 (`negate` Integer (Neg (Succ vuz38000)) == vuz62) (abs (Integer vuz300)) (`negate` Integer (Neg (Succ vuz38000)))",fontsize=16,color="black",shape="box"];1026 -> 1072[label="",style="solid", color="black", weight=3]; 2456[label="vuz1480",fontsize=16,color="green",shape="box"];2457[label="vuz1490",fontsize=16,color="green",shape="box"];2458[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not False) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not False))",fontsize=16,color="black",shape="triangle"];2458 -> 2470[label="",style="solid", color="black", weight=3]; 2459[label="vuz151",fontsize=16,color="green",shape="box"];2460[label="vuz147",fontsize=16,color="green",shape="box"];2461[label="vuz150",fontsize=16,color="green",shape="box"];2462[label="vuz146",fontsize=16,color="green",shape="box"];2463 -> 2458[label="",style="dashed", color="red", weight=0]; 2463[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) (not False) == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) (not False))",fontsize=16,color="magenta"];1031[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];1031 -> 1078[label="",style="solid", color="black", weight=3]; 1129[label="Neg Zero",fontsize=16,color="green",shape="box"];1130 -> 215[label="",style="dashed", color="red", weight=0]; 1130[label="Integer (Neg Zero) == vuz62",fontsize=16,color="magenta"];1130 -> 1147[label="",style="dashed", color="magenta", weight=3]; 1130 -> 1148[label="",style="dashed", color="magenta", weight=3]; 1742[label="`negate` Pos (Succ vuz104)",fontsize=16,color="black",shape="box"];1742 -> 1753[label="",style="solid", color="black", weight=3]; 1042[label="Neg Zero",fontsize=16,color="green",shape="box"];2464[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS (Succ vuz1570) vuz158)",fontsize=16,color="burlywood",shape="box"];3564[label="vuz158/Succ vuz1580",fontsize=10,color="white",style="solid",shape="box"];2464 -> 3564[label="",style="solid", color="burlywood", weight=9]; 3564 -> 2471[label="",style="solid", color="burlywood", weight=3]; 3565[label="vuz158/Zero",fontsize=10,color="white",style="solid",shape="box"];2464 -> 3565[label="",style="solid", color="burlywood", weight=9]; 3565 -> 2472[label="",style="solid", color="burlywood", weight=3]; 2465[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS Zero vuz158)",fontsize=16,color="burlywood",shape="box"];3566[label="vuz158/Succ vuz1580",fontsize=10,color="white",style="solid",shape="box"];2465 -> 3566[label="",style="solid", color="burlywood", weight=9]; 3566 -> 2473[label="",style="solid", color="burlywood", weight=3]; 3567[label="vuz158/Zero",fontsize=10,color="white",style="solid",shape="box"];2465 -> 3567[label="",style="solid", color="burlywood", weight=9]; 3567 -> 2474[label="",style="solid", color="burlywood", weight=3]; 1052[label="Zero",fontsize=16,color="green",shape="box"];1053 -> 1025[label="",style="dashed", color="red", weight=0]; 1053[label="primMinusNatS (Succ vuz71000) Zero",fontsize=16,color="magenta"];1053 -> 1103[label="",style="dashed", color="magenta", weight=3]; 1053 -> 1104[label="",style="dashed", color="magenta", weight=3]; 1054[label="Zero",fontsize=16,color="green",shape="box"];1055 -> 1025[label="",style="dashed", color="red", weight=0]; 1055[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];1055 -> 1105[label="",style="dashed", color="magenta", weight=3]; 1055 -> 1106[label="",style="dashed", color="magenta", weight=3]; 2388[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz137))) False == vuz140) (abs (Integer vuz141)) (absReal1 (Integer (Pos (Succ vuz137))) False)",fontsize=16,color="black",shape="box"];2388 -> 2466[label="",style="solid", color="black", weight=3]; 2389[label="vuz141",fontsize=16,color="green",shape="box"];2390[label="vuz140",fontsize=16,color="green",shape="box"];2391[label="vuz137",fontsize=16,color="green",shape="box"];2392[label="vuz136",fontsize=16,color="green",shape="box"];1190[label="Integer vuz290 `quot` gcd0Gcd'0 (abs (Integer vuz300)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1190 -> 1232[label="",style="solid", color="black", weight=3]; 1191[label="Integer vuz290 `quot` abs (Integer vuz300)",fontsize=16,color="black",shape="box"];1191 -> 1233[label="",style="solid", color="black", weight=3]; 1067[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz300)) (absReal0 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];1067 -> 1119[label="",style="solid", color="black", weight=3]; 1145[label="vuz62",fontsize=16,color="green",shape="box"];1146[label="Pos Zero",fontsize=16,color="green",shape="box"];1072 -> 1122[label="",style="dashed", color="red", weight=0]; 1072[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz38000))) == vuz62) (abs (Integer vuz300)) (Integer (primNegInt (Neg (Succ vuz38000))))",fontsize=16,color="magenta"];1072 -> 1135[label="",style="dashed", color="magenta", weight=3]; 1072 -> 1136[label="",style="dashed", color="magenta", weight=3]; 2470[label="Integer vuz146 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz147))) True == vuz150) (abs (Integer vuz151)) (absReal1 (Integer (Neg (Succ vuz147))) True)",fontsize=16,color="black",shape="box"];2470 -> 2518[label="",style="solid", color="black", weight=3]; 1078[label="Integer vuz290 `quot` gcd0Gcd'1 (`negate` Integer (Neg Zero) == vuz62) (abs (Integer vuz300)) (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];1078 -> 1154[label="",style="solid", color="black", weight=3]; 1147[label="vuz62",fontsize=16,color="green",shape="box"];1148[label="Neg Zero",fontsize=16,color="green",shape="box"];1753[label="primNegInt (Pos (Succ vuz104))",fontsize=16,color="black",shape="triangle"];1753 -> 1757[label="",style="solid", color="black", weight=3]; 2471[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS (Succ vuz1570) (Succ vuz1580))",fontsize=16,color="black",shape="box"];2471 -> 2519[label="",style="solid", color="black", weight=3]; 2472[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS (Succ vuz1570) Zero)",fontsize=16,color="black",shape="box"];2472 -> 2520[label="",style="solid", color="black", weight=3]; 2473[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS Zero (Succ vuz1580))",fontsize=16,color="black",shape="box"];2473 -> 2521[label="",style="solid", color="black", weight=3]; 2474[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2474 -> 2522[label="",style="solid", color="black", weight=3]; 1103[label="Succ vuz71000",fontsize=16,color="green",shape="box"];1104[label="Zero",fontsize=16,color="green",shape="box"];1105[label="Zero",fontsize=16,color="green",shape="box"];1106[label="Zero",fontsize=16,color="green",shape="box"];2466[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz137))) otherwise == vuz140) (abs (Integer vuz141)) (absReal0 (Integer (Pos (Succ vuz137))) otherwise)",fontsize=16,color="black",shape="box"];2466 -> 2475[label="",style="solid", color="black", weight=3]; 1232[label="Integer vuz290 `quot` gcd0Gcd' (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1232 -> 1276[label="",style="solid", color="black", weight=3]; 1233[label="Integer vuz290 `quot` absReal (Integer vuz300)",fontsize=16,color="black",shape="box"];1233 -> 1277[label="",style="solid", color="black", weight=3]; 1119[label="Integer vuz290 `quot` gcd0Gcd'1 (`negate` Integer (Pos Zero) == vuz62) (abs (Integer vuz300)) (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];1119 -> 1184[label="",style="solid", color="black", weight=3]; 1135 -> 934[label="",style="dashed", color="red", weight=0]; 1135[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1135 -> 1185[label="",style="dashed", color="magenta", weight=3]; 1136 -> 215[label="",style="dashed", color="red", weight=0]; 1136[label="Integer (primNegInt (Neg (Succ vuz38000))) == vuz62",fontsize=16,color="magenta"];1136 -> 1186[label="",style="dashed", color="magenta", weight=3]; 1136 -> 1187[label="",style="dashed", color="magenta", weight=3]; 2518 -> 1122[label="",style="dashed", color="red", weight=0]; 2518[label="Integer vuz146 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz147)) == vuz150) (abs (Integer vuz151)) (Integer (Neg (Succ vuz147)))",fontsize=16,color="magenta"];2518 -> 2556[label="",style="dashed", color="magenta", weight=3]; 2518 -> 2557[label="",style="dashed", color="magenta", weight=3]; 2518 -> 2558[label="",style="dashed", color="magenta", weight=3]; 2518 -> 2559[label="",style="dashed", color="magenta", weight=3]; 1154 -> 1122[label="",style="dashed", color="red", weight=0]; 1154[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) == vuz62) (abs (Integer vuz300)) (Integer (primNegInt (Neg Zero)))",fontsize=16,color="magenta"];1154 -> 1197[label="",style="dashed", color="magenta", weight=3]; 1154 -> 1198[label="",style="dashed", color="magenta", weight=3]; 1757[label="Neg (Succ vuz104)",fontsize=16,color="green",shape="box"];2519 -> 2415[label="",style="dashed", color="red", weight=0]; 2519[label="primModNatS0 (Succ vuz155) (Succ vuz156) (primGEqNatS vuz1570 vuz1580)",fontsize=16,color="magenta"];2519 -> 2560[label="",style="dashed", color="magenta", weight=3]; 2519 -> 2561[label="",style="dashed", color="magenta", weight=3]; 2520[label="primModNatS0 (Succ vuz155) (Succ vuz156) True",fontsize=16,color="black",shape="triangle"];2520 -> 2562[label="",style="solid", color="black", weight=3]; 2521[label="primModNatS0 (Succ vuz155) (Succ vuz156) False",fontsize=16,color="black",shape="box"];2521 -> 2563[label="",style="solid", color="black", weight=3]; 2522 -> 2520[label="",style="dashed", color="red", weight=0]; 2522[label="primModNatS0 (Succ vuz155) (Succ vuz156) True",fontsize=16,color="magenta"];2475[label="Integer vuz136 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz137))) True == vuz140) (abs (Integer vuz141)) (absReal0 (Integer (Pos (Succ vuz137))) True)",fontsize=16,color="black",shape="box"];2475 -> 2523[label="",style="solid", color="black", weight=3]; 1276[label="Integer vuz290 `quot` gcd0Gcd'2 (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1276 -> 1344[label="",style="solid", color="black", weight=3]; 1277[label="Integer vuz290 `quot` absReal2 (Integer vuz300)",fontsize=16,color="black",shape="box"];1277 -> 1345[label="",style="solid", color="black", weight=3]; 1184 -> 1122[label="",style="dashed", color="red", weight=0]; 1184[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) == vuz62) (abs (Integer vuz300)) (Integer (primNegInt (Pos Zero)))",fontsize=16,color="magenta"];1184 -> 1229[label="",style="dashed", color="magenta", weight=3]; 1184 -> 1230[label="",style="dashed", color="magenta", weight=3]; 1185[label="vuz38000",fontsize=16,color="green",shape="box"];1186[label="vuz62",fontsize=16,color="green",shape="box"];1187 -> 934[label="",style="dashed", color="red", weight=0]; 1187[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1187 -> 1231[label="",style="dashed", color="magenta", weight=3]; 2556[label="vuz151",fontsize=16,color="green",shape="box"];2557[label="Neg (Succ vuz147)",fontsize=16,color="green",shape="box"];2558[label="vuz146",fontsize=16,color="green",shape="box"];2559 -> 215[label="",style="dashed", color="red", weight=0]; 2559[label="Integer (Neg (Succ vuz147)) == vuz150",fontsize=16,color="magenta"];2559 -> 2590[label="",style="dashed", color="magenta", weight=3]; 2559 -> 2591[label="",style="dashed", color="magenta", weight=3]; 1197 -> 969[label="",style="dashed", color="red", weight=0]; 1197[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];1198 -> 215[label="",style="dashed", color="red", weight=0]; 1198[label="Integer (primNegInt (Neg Zero)) == vuz62",fontsize=16,color="magenta"];1198 -> 1241[label="",style="dashed", color="magenta", weight=3]; 1198 -> 1242[label="",style="dashed", color="magenta", weight=3]; 2560[label="vuz1580",fontsize=16,color="green",shape="box"];2561[label="vuz1570",fontsize=16,color="green",shape="box"];2562 -> 784[label="",style="dashed", color="red", weight=0]; 2562[label="primModNatS (primMinusNatS (Succ vuz155) (Succ vuz156)) (Succ (Succ vuz156))",fontsize=16,color="magenta"];2562 -> 2592[label="",style="dashed", color="magenta", weight=3]; 2562 -> 2593[label="",style="dashed", color="magenta", weight=3]; 2563[label="Succ (Succ vuz155)",fontsize=16,color="green",shape="box"];2523[label="Integer vuz136 `quot` gcd0Gcd'1 (`negate` Integer (Pos (Succ vuz137)) == vuz140) (abs (Integer vuz141)) (`negate` Integer (Pos (Succ vuz137)))",fontsize=16,color="black",shape="box"];2523 -> 2564[label="",style="solid", color="black", weight=3]; 1344 -> 1381[label="",style="dashed", color="red", weight=0]; 1344[label="Integer vuz290 `quot` gcd0Gcd'1 (abs (Integer vuz300) `rem` Integer vuz94 == fromInt (Pos Zero)) (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="magenta"];1344 -> 1382[label="",style="dashed", color="magenta", weight=3]; 1345 -> 1387[label="",style="dashed", color="red", weight=0]; 1345[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (Integer vuz300 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];1345 -> 1388[label="",style="dashed", color="magenta", weight=3]; 1229 -> 1002[label="",style="dashed", color="red", weight=0]; 1229[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];1230 -> 215[label="",style="dashed", color="red", weight=0]; 1230[label="Integer (primNegInt (Pos Zero)) == vuz62",fontsize=16,color="magenta"];1230 -> 1274[label="",style="dashed", color="magenta", weight=3]; 1230 -> 1275[label="",style="dashed", color="magenta", weight=3]; 1231[label="vuz38000",fontsize=16,color="green",shape="box"];2590[label="vuz150",fontsize=16,color="green",shape="box"];2591[label="Neg (Succ vuz147)",fontsize=16,color="green",shape="box"];1241[label="vuz62",fontsize=16,color="green",shape="box"];1242 -> 969[label="",style="dashed", color="red", weight=0]; 1242[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2592[label="Succ vuz156",fontsize=16,color="green",shape="box"];2593 -> 1025[label="",style="dashed", color="red", weight=0]; 2593[label="primMinusNatS (Succ vuz155) (Succ vuz156)",fontsize=16,color="magenta"];2593 -> 2623[label="",style="dashed", color="magenta", weight=3]; 2593 -> 2624[label="",style="dashed", color="magenta", weight=3]; 2564 -> 1122[label="",style="dashed", color="red", weight=0]; 2564[label="Integer vuz136 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz137))) == vuz140) (abs (Integer vuz141)) (Integer (primNegInt (Pos (Succ vuz137))))",fontsize=16,color="magenta"];2564 -> 2594[label="",style="dashed", color="magenta", weight=3]; 2564 -> 2595[label="",style="dashed", color="magenta", weight=3]; 2564 -> 2596[label="",style="dashed", color="magenta", weight=3]; 2564 -> 2597[label="",style="dashed", color="magenta", weight=3]; 1382 -> 13[label="",style="dashed", color="red", weight=0]; 1382[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1381[label="Integer vuz290 `quot` gcd0Gcd'1 (abs (Integer vuz300) `rem` Integer vuz94 == vuz101) (Integer vuz94) (abs (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1381 -> 1393[label="",style="solid", color="black", weight=3]; 1388 -> 13[label="",style="dashed", color="red", weight=0]; 1388[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1387[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (Integer vuz300 >= vuz102)",fontsize=16,color="black",shape="triangle"];1387 -> 1394[label="",style="solid", color="black", weight=3]; 1274[label="vuz62",fontsize=16,color="green",shape="box"];1275 -> 1002[label="",style="dashed", color="red", weight=0]; 1275[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];2623[label="Succ vuz155",fontsize=16,color="green",shape="box"];2624[label="Succ vuz156",fontsize=16,color="green",shape="box"];2594[label="vuz141",fontsize=16,color="green",shape="box"];2595 -> 1753[label="",style="dashed", color="red", weight=0]; 2595[label="primNegInt (Pos (Succ vuz137))",fontsize=16,color="magenta"];2595 -> 2625[label="",style="dashed", color="magenta", weight=3]; 2596[label="vuz136",fontsize=16,color="green",shape="box"];2597 -> 215[label="",style="dashed", color="red", weight=0]; 2597[label="Integer (primNegInt (Pos (Succ vuz137))) == vuz140",fontsize=16,color="magenta"];2597 -> 2626[label="",style="dashed", color="magenta", weight=3]; 2597 -> 2627[label="",style="dashed", color="magenta", weight=3]; 1393[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal (Integer vuz300) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1393 -> 1431[label="",style="solid", color="black", weight=3]; 1394[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (compare (Integer vuz300) vuz102 /= LT)",fontsize=16,color="black",shape="box"];1394 -> 1432[label="",style="solid", color="black", weight=3]; 2625[label="vuz137",fontsize=16,color="green",shape="box"];2626[label="vuz140",fontsize=16,color="green",shape="box"];2627 -> 1753[label="",style="dashed", color="red", weight=0]; 2627[label="primNegInt (Pos (Succ vuz137))",fontsize=16,color="magenta"];2627 -> 2657[label="",style="dashed", color="magenta", weight=3]; 1431[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal2 (Integer vuz300) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal2 (Integer vuz300) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1431 -> 1467[label="",style="solid", color="black", weight=3]; 1432[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (not (compare (Integer vuz300) vuz102 == LT))",fontsize=16,color="burlywood",shape="box"];3568[label="vuz102/Integer vuz1020",fontsize=10,color="white",style="solid",shape="box"];1432 -> 3568[label="",style="solid", color="burlywood", weight=9]; 3568 -> 1468[label="",style="solid", color="burlywood", weight=3]; 2657[label="vuz137",fontsize=16,color="green",shape="box"];1467 -> 1506[label="",style="dashed", color="red", weight=0]; 1467[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (Integer vuz300 >= fromInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (Integer vuz300 >= fromInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1467 -> 1507[label="",style="dashed", color="magenta", weight=3]; 1467 -> 1508[label="",style="dashed", color="magenta", weight=3]; 1468[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (not (compare (Integer vuz300) (Integer vuz1020) == LT))",fontsize=16,color="black",shape="box"];1468 -> 1513[label="",style="solid", color="black", weight=3]; 1507 -> 13[label="",style="dashed", color="red", weight=0]; 1507[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1508 -> 13[label="",style="dashed", color="red", weight=0]; 1508[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1506[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (Integer vuz300 >= vuz108) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (Integer vuz300 >= vuz107) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1506 -> 1545[label="",style="solid", color="black", weight=3]; 1513[label="Integer vuz290 `quot` absReal1 (Integer vuz300) (not (primCmpInt vuz300 vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3569[label="vuz300/Pos vuz3000",fontsize=10,color="white",style="solid",shape="box"];1513 -> 3569[label="",style="solid", color="burlywood", weight=9]; 3569 -> 1546[label="",style="solid", color="burlywood", weight=3]; 3570[label="vuz300/Neg vuz3000",fontsize=10,color="white",style="solid",shape="box"];1513 -> 3570[label="",style="solid", color="burlywood", weight=9]; 3570 -> 1547[label="",style="solid", color="burlywood", weight=3]; 1545[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (compare (Integer vuz300) vuz108 /= LT) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (compare (Integer vuz300) vuz108 /= LT) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1545 -> 1584[label="",style="solid", color="black", weight=3]; 1546[label="Integer vuz290 `quot` absReal1 (Integer (Pos vuz3000)) (not (primCmpInt (Pos vuz3000) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3571[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1546 -> 3571[label="",style="solid", color="burlywood", weight=9]; 3571 -> 1585[label="",style="solid", color="burlywood", weight=3]; 3572[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1546 -> 3572[label="",style="solid", color="burlywood", weight=9]; 3572 -> 1586[label="",style="solid", color="burlywood", weight=3]; 1547[label="Integer vuz290 `quot` absReal1 (Integer (Neg vuz3000)) (not (primCmpInt (Neg vuz3000) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3573[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1547 -> 3573[label="",style="solid", color="burlywood", weight=9]; 3573 -> 1587[label="",style="solid", color="burlywood", weight=3]; 3574[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1547 -> 3574[label="",style="solid", color="burlywood", weight=9]; 3574 -> 1588[label="",style="solid", color="burlywood", weight=3]; 1584[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (not (compare (Integer vuz300) vuz108 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (not (compare (Integer vuz300) vuz108 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3575[label="vuz108/Integer vuz1080",fontsize=10,color="white",style="solid",shape="box"];1584 -> 3575[label="",style="solid", color="burlywood", weight=9]; 3575 -> 1614[label="",style="solid", color="burlywood", weight=3]; 1585[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3576[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1585 -> 3576[label="",style="solid", color="burlywood", weight=9]; 3576 -> 1615[label="",style="solid", color="burlywood", weight=3]; 3577[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1585 -> 3577[label="",style="solid", color="burlywood", weight=9]; 3577 -> 1616[label="",style="solid", color="burlywood", weight=3]; 1586[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3578[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1586 -> 3578[label="",style="solid", color="burlywood", weight=9]; 3578 -> 1617[label="",style="solid", color="burlywood", weight=3]; 3579[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1586 -> 3579[label="",style="solid", color="burlywood", weight=9]; 3579 -> 1618[label="",style="solid", color="burlywood", weight=3]; 1587[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3580[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1587 -> 3580[label="",style="solid", color="burlywood", weight=9]; 3580 -> 1619[label="",style="solid", color="burlywood", weight=3]; 3581[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1587 -> 3581[label="",style="solid", color="burlywood", weight=9]; 3581 -> 1620[label="",style="solid", color="burlywood", weight=3]; 1588[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3582[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1588 -> 3582[label="",style="solid", color="burlywood", weight=9]; 3582 -> 1621[label="",style="solid", color="burlywood", weight=3]; 3583[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1588 -> 3583[label="",style="solid", color="burlywood", weight=9]; 3583 -> 1622[label="",style="solid", color="burlywood", weight=3]; 1614[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (not (compare (Integer vuz300) (Integer vuz1080) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (not (compare (Integer vuz300) (Integer vuz1080) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1614 -> 1672[label="",style="solid", color="black", weight=3]; 1615[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1615 -> 1673[label="",style="solid", color="black", weight=3]; 1616[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1616 -> 1674[label="",style="solid", color="black", weight=3]; 1617[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3584[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1617 -> 3584[label="",style="solid", color="burlywood", weight=9]; 3584 -> 1675[label="",style="solid", color="burlywood", weight=3]; 3585[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1617 -> 3585[label="",style="solid", color="burlywood", weight=9]; 3585 -> 1676[label="",style="solid", color="burlywood", weight=3]; 1618[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3586[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1618 -> 3586[label="",style="solid", color="burlywood", weight=9]; 3586 -> 1677[label="",style="solid", color="burlywood", weight=3]; 3587[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1618 -> 3587[label="",style="solid", color="burlywood", weight=9]; 3587 -> 1678[label="",style="solid", color="burlywood", weight=3]; 1619[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1619 -> 1679[label="",style="solid", color="black", weight=3]; 1620[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1620 -> 1680[label="",style="solid", color="black", weight=3]; 1621[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3588[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1621 -> 3588[label="",style="solid", color="burlywood", weight=9]; 3588 -> 1681[label="",style="solid", color="burlywood", weight=3]; 3589[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1621 -> 3589[label="",style="solid", color="burlywood", weight=9]; 3589 -> 1682[label="",style="solid", color="burlywood", weight=3]; 1622[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3590[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1622 -> 3590[label="",style="solid", color="burlywood", weight=9]; 3590 -> 1683[label="",style="solid", color="burlywood", weight=3]; 3591[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1622 -> 3591[label="",style="solid", color="burlywood", weight=9]; 3591 -> 1684[label="",style="solid", color="burlywood", weight=3]; 1672[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer vuz300) (not (primCmpInt vuz300 vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz300) (not (primCmpInt vuz300 vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3592[label="vuz300/Pos vuz3000",fontsize=10,color="white",style="solid",shape="box"];1672 -> 3592[label="",style="solid", color="burlywood", weight=9]; 3592 -> 1715[label="",style="solid", color="burlywood", weight=3]; 3593[label="vuz300/Neg vuz3000",fontsize=10,color="white",style="solid",shape="box"];1672 -> 3593[label="",style="solid", color="burlywood", weight=9]; 3593 -> 1716[label="",style="solid", color="burlywood", weight=3]; 1673 -> 2960[label="",style="dashed", color="red", weight=0]; 1673[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpNat (Succ vuz30000) vuz10200 == LT))",fontsize=16,color="magenta"];1673 -> 2961[label="",style="dashed", color="magenta", weight=3]; 1673 -> 2962[label="",style="dashed", color="magenta", weight=3]; 1673 -> 2963[label="",style="dashed", color="magenta", weight=3]; 1673 -> 2964[label="",style="dashed", color="magenta", weight=3]; 1674[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];1674 -> 1719[label="",style="solid", color="black", weight=3]; 1675[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1675 -> 1720[label="",style="solid", color="black", weight=3]; 1676[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1676 -> 1721[label="",style="solid", color="black", weight=3]; 1677[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1677 -> 1722[label="",style="solid", color="black", weight=3]; 1678[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1678 -> 1723[label="",style="solid", color="black", weight=3]; 1679[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];1679 -> 1724[label="",style="solid", color="black", weight=3]; 1680 -> 3005[label="",style="dashed", color="red", weight=0]; 1680[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpNat vuz10200 (Succ vuz30000) == LT))",fontsize=16,color="magenta"];1680 -> 3006[label="",style="dashed", color="magenta", weight=3]; 1680 -> 3007[label="",style="dashed", color="magenta", weight=3]; 1680 -> 3008[label="",style="dashed", color="magenta", weight=3]; 1680 -> 3009[label="",style="dashed", color="magenta", weight=3]; 1681[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1681 -> 1727[label="",style="solid", color="black", weight=3]; 1682[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1682 -> 1728[label="",style="solid", color="black", weight=3]; 1683[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1683 -> 1729[label="",style="solid", color="black", weight=3]; 1684[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1684 -> 1730[label="",style="solid", color="black", weight=3]; 1715[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3000)) (not (primCmpInt (Pos vuz3000) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos vuz3000)) (not (primCmpInt (Pos vuz3000) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3594[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3594[label="",style="solid", color="burlywood", weight=9]; 3594 -> 1765[label="",style="solid", color="burlywood", weight=3]; 3595[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3595[label="",style="solid", color="burlywood", weight=9]; 3595 -> 1766[label="",style="solid", color="burlywood", weight=3]; 1716[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3000)) (not (primCmpInt (Neg vuz3000) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg vuz3000)) (not (primCmpInt (Neg vuz3000) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3596[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3596[label="",style="solid", color="burlywood", weight=9]; 3596 -> 1767[label="",style="solid", color="burlywood", weight=3]; 3597[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3597[label="",style="solid", color="burlywood", weight=9]; 3597 -> 1768[label="",style="solid", color="burlywood", weight=3]; 2961[label="vuz290",fontsize=16,color="green",shape="box"];2962[label="vuz30000",fontsize=16,color="green",shape="box"];2963[label="Succ vuz30000",fontsize=16,color="green",shape="box"];2964[label="vuz10200",fontsize=16,color="green",shape="box"];2960[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat vuz174 vuz175 == LT))",fontsize=16,color="burlywood",shape="triangle"];3598[label="vuz174/Succ vuz1740",fontsize=10,color="white",style="solid",shape="box"];2960 -> 3598[label="",style="solid", color="burlywood", weight=9]; 3598 -> 3001[label="",style="solid", color="burlywood", weight=3]; 3599[label="vuz174/Zero",fontsize=10,color="white",style="solid",shape="box"];2960 -> 3599[label="",style="solid", color="burlywood", weight=9]; 3599 -> 3002[label="",style="solid", color="burlywood", weight=3]; 1719[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) (not False)",fontsize=16,color="black",shape="triangle"];1719 -> 1771[label="",style="solid", color="black", weight=3]; 1720[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz102000) == LT))",fontsize=16,color="black",shape="box"];1720 -> 1772[label="",style="solid", color="black", weight=3]; 1721[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1721 -> 1773[label="",style="solid", color="black", weight=3]; 1722[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1722 -> 1774[label="",style="solid", color="black", weight=3]; 1723 -> 1721[label="",style="dashed", color="red", weight=0]; 1723[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1724[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) (not True)",fontsize=16,color="black",shape="box"];1724 -> 1775[label="",style="solid", color="black", weight=3]; 3006[label="vuz290",fontsize=16,color="green",shape="box"];3007[label="Succ vuz30000",fontsize=16,color="green",shape="box"];3008[label="vuz10200",fontsize=16,color="green",shape="box"];3009[label="vuz30000",fontsize=16,color="green",shape="box"];3005[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat vuz179 vuz180 == LT))",fontsize=16,color="burlywood",shape="triangle"];3600[label="vuz179/Succ vuz1790",fontsize=10,color="white",style="solid",shape="box"];3005 -> 3600[label="",style="solid", color="burlywood", weight=9]; 3600 -> 3046[label="",style="solid", color="burlywood", weight=3]; 3601[label="vuz179/Zero",fontsize=10,color="white",style="solid",shape="box"];3005 -> 3601[label="",style="solid", color="burlywood", weight=9]; 3601 -> 3047[label="",style="solid", color="burlywood", weight=3]; 1727[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1727 -> 1778[label="",style="solid", color="black", weight=3]; 1728[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1728 -> 1779[label="",style="solid", color="black", weight=3]; 1729[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz102000) Zero == LT))",fontsize=16,color="black",shape="box"];1729 -> 1780[label="",style="solid", color="black", weight=3]; 1730 -> 1728[label="",style="dashed", color="red", weight=0]; 1730[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1765[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3602[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1765 -> 3602[label="",style="solid", color="burlywood", weight=9]; 3602 -> 1801[label="",style="solid", color="burlywood", weight=3]; 3603[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1765 -> 3603[label="",style="solid", color="burlywood", weight=9]; 3603 -> 1802[label="",style="solid", color="burlywood", weight=3]; 1766[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3604[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1766 -> 3604[label="",style="solid", color="burlywood", weight=9]; 3604 -> 1803[label="",style="solid", color="burlywood", weight=3]; 3605[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1766 -> 3605[label="",style="solid", color="burlywood", weight=9]; 3605 -> 1804[label="",style="solid", color="burlywood", weight=3]; 1767[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3606[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1767 -> 3606[label="",style="solid", color="burlywood", weight=9]; 3606 -> 1805[label="",style="solid", color="burlywood", weight=3]; 3607[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1767 -> 3607[label="",style="solid", color="burlywood", weight=9]; 3607 -> 1806[label="",style="solid", color="burlywood", weight=3]; 1768[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1080 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1080 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3608[label="vuz1080/Pos vuz10800",fontsize=10,color="white",style="solid",shape="box"];1768 -> 3608[label="",style="solid", color="burlywood", weight=9]; 3608 -> 1807[label="",style="solid", color="burlywood", weight=3]; 3609[label="vuz1080/Neg vuz10800",fontsize=10,color="white",style="solid",shape="box"];1768 -> 3609[label="",style="solid", color="burlywood", weight=9]; 3609 -> 1808[label="",style="solid", color="burlywood", weight=3]; 3001[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat (Succ vuz1740) vuz175 == LT))",fontsize=16,color="burlywood",shape="box"];3610[label="vuz175/Succ vuz1750",fontsize=10,color="white",style="solid",shape="box"];3001 -> 3610[label="",style="solid", color="burlywood", weight=9]; 3610 -> 3048[label="",style="solid", color="burlywood", weight=3]; 3611[label="vuz175/Zero",fontsize=10,color="white",style="solid",shape="box"];3001 -> 3611[label="",style="solid", color="burlywood", weight=9]; 3611 -> 3049[label="",style="solid", color="burlywood", weight=3]; 3002[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat Zero vuz175 == LT))",fontsize=16,color="burlywood",shape="box"];3612[label="vuz175/Succ vuz1750",fontsize=10,color="white",style="solid",shape="box"];3002 -> 3612[label="",style="solid", color="burlywood", weight=9]; 3612 -> 3050[label="",style="solid", color="burlywood", weight=3]; 3613[label="vuz175/Zero",fontsize=10,color="white",style="solid",shape="box"];3002 -> 3613[label="",style="solid", color="burlywood", weight=9]; 3613 -> 3051[label="",style="solid", color="burlywood", weight=3]; 1771[label="Integer vuz290 `quot` absReal1 (Integer (Pos (Succ vuz30000))) True",fontsize=16,color="black",shape="box"];1771 -> 1811[label="",style="solid", color="black", weight=3]; 1772[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1772 -> 1812[label="",style="solid", color="black", weight=3]; 1773[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1773 -> 1813[label="",style="solid", color="black", weight=3]; 1774 -> 1773[label="",style="dashed", color="red", weight=0]; 1774[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];1775[label="Integer vuz290 `quot` absReal1 (Integer (Neg (Succ vuz30000))) False",fontsize=16,color="black",shape="box"];1775 -> 1814[label="",style="solid", color="black", weight=3]; 3046[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat (Succ vuz1790) vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3614[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3046 -> 3614[label="",style="solid", color="burlywood", weight=9]; 3614 -> 3067[label="",style="solid", color="burlywood", weight=3]; 3615[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3046 -> 3615[label="",style="solid", color="burlywood", weight=9]; 3615 -> 3068[label="",style="solid", color="burlywood", weight=3]; 3047[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat Zero vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3616[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3047 -> 3616[label="",style="solid", color="burlywood", weight=9]; 3616 -> 3069[label="",style="solid", color="burlywood", weight=3]; 3617[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3047 -> 3617[label="",style="solid", color="burlywood", weight=9]; 3617 -> 3070[label="",style="solid", color="burlywood", weight=3]; 1778[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];1778 -> 1817[label="",style="solid", color="black", weight=3]; 1779[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1779 -> 1818[label="",style="solid", color="black", weight=3]; 1780[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1780 -> 1819[label="",style="solid", color="black", weight=3]; 1801[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1801 -> 1843[label="",style="solid", color="black", weight=3]; 1802[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpInt (Pos (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1802 -> 1844[label="",style="solid", color="black", weight=3]; 1803[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3618[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1803 -> 3618[label="",style="solid", color="burlywood", weight=9]; 3618 -> 1845[label="",style="solid", color="burlywood", weight=3]; 3619[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1803 -> 3619[label="",style="solid", color="burlywood", weight=9]; 3619 -> 1846[label="",style="solid", color="burlywood", weight=3]; 1804[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3620[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1804 -> 3620[label="",style="solid", color="burlywood", weight=9]; 3620 -> 1847[label="",style="solid", color="burlywood", weight=3]; 3621[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1804 -> 3621[label="",style="solid", color="burlywood", weight=9]; 3621 -> 1848[label="",style="solid", color="burlywood", weight=3]; 1805[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1805 -> 1849[label="",style="solid", color="black", weight=3]; 1806[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpInt (Neg (Succ vuz30000)) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1806 -> 1850[label="",style="solid", color="black", weight=3]; 1807[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3622[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1807 -> 3622[label="",style="solid", color="burlywood", weight=9]; 3622 -> 1851[label="",style="solid", color="burlywood", weight=3]; 3623[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1807 -> 3623[label="",style="solid", color="burlywood", weight=9]; 3623 -> 1852[label="",style="solid", color="burlywood", weight=3]; 1808[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10800) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3624[label="vuz10800/Succ vuz108000",fontsize=10,color="white",style="solid",shape="box"];1808 -> 3624[label="",style="solid", color="burlywood", weight=9]; 3624 -> 1853[label="",style="solid", color="burlywood", weight=3]; 3625[label="vuz10800/Zero",fontsize=10,color="white",style="solid",shape="box"];1808 -> 3625[label="",style="solid", color="burlywood", weight=9]; 3625 -> 1854[label="",style="solid", color="burlywood", weight=3]; 3048[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat (Succ vuz1740) (Succ vuz1750) == LT))",fontsize=16,color="black",shape="box"];3048 -> 3071[label="",style="solid", color="black", weight=3]; 3049[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat (Succ vuz1740) Zero == LT))",fontsize=16,color="black",shape="box"];3049 -> 3072[label="",style="solid", color="black", weight=3]; 3050[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat Zero (Succ vuz1750) == LT))",fontsize=16,color="black",shape="box"];3050 -> 3073[label="",style="solid", color="black", weight=3]; 3051[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3051 -> 3074[label="",style="solid", color="black", weight=3]; 1811 -> 2047[label="",style="dashed", color="red", weight=0]; 1811[label="Integer vuz290 `quot` Integer (Pos (Succ vuz30000))",fontsize=16,color="magenta"];1811 -> 2048[label="",style="dashed", color="magenta", weight=3]; 1812[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];1812 -> 1860[label="",style="solid", color="black", weight=3]; 1813[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];1813 -> 1861[label="",style="solid", color="black", weight=3]; 1814[label="Integer vuz290 `quot` absReal0 (Integer (Neg (Succ vuz30000))) otherwise",fontsize=16,color="black",shape="box"];1814 -> 1862[label="",style="solid", color="black", weight=3]; 3067[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat (Succ vuz1790) (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3067 -> 3089[label="",style="solid", color="black", weight=3]; 3068[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat (Succ vuz1790) Zero == LT))",fontsize=16,color="black",shape="box"];3068 -> 3090[label="",style="solid", color="black", weight=3]; 3069[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat Zero (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3069 -> 3091[label="",style="solid", color="black", weight=3]; 3070[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3070 -> 3092[label="",style="solid", color="black", weight=3]; 1817[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];1817 -> 1867[label="",style="solid", color="black", weight=3]; 1818[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1818 -> 1868[label="",style="solid", color="black", weight=3]; 1819 -> 1779[label="",style="dashed", color="red", weight=0]; 1819[label="Integer vuz290 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];1843 -> 3119[label="",style="dashed", color="red", weight=0]; 1843[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpNat (Succ vuz30000) vuz10800 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (primCmpNat (Succ vuz30000) vuz10800 == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1843 -> 3120[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3121[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3122[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3123[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3124[label="",style="dashed", color="magenta", weight=3]; 1843 -> 3125[label="",style="dashed", color="magenta", weight=3]; 1844[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1844 -> 1899[label="",style="solid", color="black", weight=3]; 1845[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1845 -> 1900[label="",style="solid", color="black", weight=3]; 1846[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1846 -> 1901[label="",style="solid", color="black", weight=3]; 1847[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1847 -> 1902[label="",style="solid", color="black", weight=3]; 1848[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1848 -> 1903[label="",style="solid", color="black", weight=3]; 1849[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1849 -> 1904[label="",style="solid", color="black", weight=3]; 1850 -> 3184[label="",style="dashed", color="red", weight=0]; 1850[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpNat vuz10800 (Succ vuz30000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not (primCmpNat vuz10800 (Succ vuz30000) == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1850 -> 3185[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3186[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3187[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3188[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3189[label="",style="dashed", color="magenta", weight=3]; 1850 -> 3190[label="",style="dashed", color="magenta", weight=3]; 1851[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1851 -> 1907[label="",style="solid", color="black", weight=3]; 1852[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1852 -> 1908[label="",style="solid", color="black", weight=3]; 1853[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz108000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1853 -> 1909[label="",style="solid", color="black", weight=3]; 1854[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1854 -> 1910[label="",style="solid", color="black", weight=3]; 3071 -> 2960[label="",style="dashed", color="red", weight=0]; 3071[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (primCmpNat vuz1740 vuz1750 == LT))",fontsize=16,color="magenta"];3071 -> 3093[label="",style="dashed", color="magenta", weight=3]; 3071 -> 3094[label="",style="dashed", color="magenta", weight=3]; 3072 -> 1674[label="",style="dashed", color="red", weight=0]; 3072[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (GT == LT))",fontsize=16,color="magenta"];3072 -> 3095[label="",style="dashed", color="magenta", weight=3]; 3072 -> 3096[label="",style="dashed", color="magenta", weight=3]; 3073[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (LT == LT))",fontsize=16,color="black",shape="box"];3073 -> 3097[label="",style="solid", color="black", weight=3]; 3074[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3074 -> 3098[label="",style="solid", color="black", weight=3]; 2048[label="Pos (Succ vuz30000)",fontsize=16,color="green",shape="box"];2047[label="Integer vuz290 `quot` Integer vuz134",fontsize=16,color="black",shape="triangle"];2047 -> 2054[label="",style="solid", color="black", weight=3]; 1860[label="Integer vuz290 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];1860 -> 1916[label="",style="solid", color="black", weight=3]; 1861 -> 2047[label="",style="dashed", color="red", weight=0]; 1861[label="Integer vuz290 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];1861 -> 2049[label="",style="dashed", color="magenta", weight=3]; 1862[label="Integer vuz290 `quot` absReal0 (Integer (Neg (Succ vuz30000))) True",fontsize=16,color="black",shape="box"];1862 -> 1918[label="",style="solid", color="black", weight=3]; 3089 -> 3005[label="",style="dashed", color="red", weight=0]; 3089[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (primCmpNat vuz1790 vuz1800 == LT))",fontsize=16,color="magenta"];3089 -> 3110[label="",style="dashed", color="magenta", weight=3]; 3089 -> 3111[label="",style="dashed", color="magenta", weight=3]; 3090[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (GT == LT))",fontsize=16,color="black",shape="box"];3090 -> 3112[label="",style="solid", color="black", weight=3]; 3091 -> 1679[label="",style="dashed", color="red", weight=0]; 3091[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (LT == LT))",fontsize=16,color="magenta"];3091 -> 3113[label="",style="dashed", color="magenta", weight=3]; 3091 -> 3114[label="",style="dashed", color="magenta", weight=3]; 3092[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3092 -> 3115[label="",style="solid", color="black", weight=3]; 1867[label="Integer vuz290 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];1867 -> 1923[label="",style="solid", color="black", weight=3]; 1868 -> 2047[label="",style="dashed", color="red", weight=0]; 1868[label="Integer vuz290 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];1868 -> 2050[label="",style="dashed", color="magenta", weight=3]; 3120[label="vuz101",fontsize=16,color="green",shape="box"];3121[label="vuz290",fontsize=16,color="green",shape="box"];3122[label="Succ vuz30000",fontsize=16,color="green",shape="box"];3123[label="vuz30000",fontsize=16,color="green",shape="box"];3124[label="vuz94",fontsize=16,color="green",shape="box"];3125[label="vuz10800",fontsize=16,color="green",shape="box"];3119[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz184 vuz185 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz184 vuz185 == LT)) `rem` Integer vuz186)",fontsize=16,color="burlywood",shape="triangle"];3626[label="vuz184/Succ vuz1840",fontsize=10,color="white",style="solid",shape="box"];3119 -> 3626[label="",style="solid", color="burlywood", weight=9]; 3626 -> 3180[label="",style="solid", color="burlywood", weight=3]; 3627[label="vuz184/Zero",fontsize=10,color="white",style="solid",shape="box"];3119 -> 3627[label="",style="solid", color="burlywood", weight=9]; 3627 -> 3181[label="",style="solid", color="burlywood", weight=3]; 1899[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1899 -> 1975[label="",style="solid", color="black", weight=3]; 1900[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz108000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz108000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1900 -> 1976[label="",style="solid", color="black", weight=3]; 1901[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1901 -> 1977[label="",style="solid", color="black", weight=3]; 1902[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1902 -> 1978[label="",style="solid", color="black", weight=3]; 1903 -> 1901[label="",style="dashed", color="red", weight=0]; 1903[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1904[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1904 -> 1979[label="",style="solid", color="black", weight=3]; 3185[label="vuz30000",fontsize=16,color="green",shape="box"];3186[label="vuz101",fontsize=16,color="green",shape="box"];3187[label="vuz10800",fontsize=16,color="green",shape="box"];3188[label="vuz290",fontsize=16,color="green",shape="box"];3189[label="Succ vuz30000",fontsize=16,color="green",shape="box"];3190[label="vuz94",fontsize=16,color="green",shape="box"];3184[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz191 vuz192 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz191 vuz192 == LT)) `rem` Integer vuz193)",fontsize=16,color="burlywood",shape="triangle"];3628[label="vuz191/Succ vuz1910",fontsize=10,color="white",style="solid",shape="box"];3184 -> 3628[label="",style="solid", color="burlywood", weight=9]; 3628 -> 3245[label="",style="solid", color="burlywood", weight=3]; 3629[label="vuz191/Zero",fontsize=10,color="white",style="solid",shape="box"];3184 -> 3629[label="",style="solid", color="burlywood", weight=9]; 3629 -> 3246[label="",style="solid", color="burlywood", weight=3]; 1907[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1907 -> 1982[label="",style="solid", color="black", weight=3]; 1908[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1908 -> 1983[label="",style="solid", color="black", weight=3]; 1909[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz108000) Zero == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz108000) Zero == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1909 -> 1984[label="",style="solid", color="black", weight=3]; 1910 -> 1908[label="",style="dashed", color="red", weight=0]; 1910[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];3093[label="vuz1740",fontsize=16,color="green",shape="box"];3094[label="vuz1750",fontsize=16,color="green",shape="box"];3095[label="vuz172",fontsize=16,color="green",shape="box"];3096[label="vuz173",fontsize=16,color="green",shape="box"];3097[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not True)",fontsize=16,color="black",shape="box"];3097 -> 3116[label="",style="solid", color="black", weight=3]; 3098 -> 1719[label="",style="dashed", color="red", weight=0]; 3098[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) (not False)",fontsize=16,color="magenta"];3098 -> 3117[label="",style="dashed", color="magenta", weight=3]; 3098 -> 3118[label="",style="dashed", color="magenta", weight=3]; 2054[label="Integer (primQuotInt vuz290 vuz134)",fontsize=16,color="green",shape="box"];2054 -> 2100[label="",style="dashed", color="green", weight=3]; 1916[label="Integer vuz290 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];1916 -> 1992[label="",style="solid", color="black", weight=3]; 2049[label="Pos Zero",fontsize=16,color="green",shape="box"];1918[label="Integer vuz290 `quot` (`negate` Integer (Neg (Succ vuz30000)))",fontsize=16,color="black",shape="box"];1918 -> 1994[label="",style="solid", color="black", weight=3]; 3110[label="vuz1800",fontsize=16,color="green",shape="box"];3111[label="vuz1790",fontsize=16,color="green",shape="box"];3112[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not False)",fontsize=16,color="black",shape="triangle"];3112 -> 3182[label="",style="solid", color="black", weight=3]; 3113[label="vuz178",fontsize=16,color="green",shape="box"];3114[label="vuz177",fontsize=16,color="green",shape="box"];3115 -> 3112[label="",style="dashed", color="red", weight=0]; 3115[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) (not False)",fontsize=16,color="magenta"];1923[label="Integer vuz290 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1923 -> 2000[label="",style="solid", color="black", weight=3]; 2050[label="Neg Zero",fontsize=16,color="green",shape="box"];3180[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) vuz185 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) vuz185 == LT)) `rem` Integer vuz186)",fontsize=16,color="burlywood",shape="box"];3630[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3180 -> 3630[label="",style="solid", color="burlywood", weight=9]; 3630 -> 3247[label="",style="solid", color="burlywood", weight=3]; 3631[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3180 -> 3631[label="",style="solid", color="burlywood", weight=9]; 3631 -> 3248[label="",style="solid", color="burlywood", weight=3]; 3181[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero vuz185 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero vuz185 == LT)) `rem` Integer vuz186)",fontsize=16,color="burlywood",shape="box"];3632[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3181 -> 3632[label="",style="solid", color="burlywood", weight=9]; 3632 -> 3249[label="",style="solid", color="burlywood", weight=3]; 3633[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3181 -> 3633[label="",style="solid", color="burlywood", weight=9]; 3633 -> 3250[label="",style="solid", color="burlywood", weight=3]; 1975[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz30000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz30000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1975 -> 2027[label="",style="solid", color="black", weight=3]; 1976[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1976 -> 2028[label="",style="solid", color="black", weight=3]; 1977[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1977 -> 2029[label="",style="solid", color="black", weight=3]; 1978 -> 1977[label="",style="dashed", color="red", weight=0]; 1978[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];1979[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz30000))) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz30000))) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1979 -> 2030[label="",style="solid", color="black", weight=3]; 3245[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) vuz192 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) vuz192 == LT)) `rem` Integer vuz193)",fontsize=16,color="burlywood",shape="box"];3634[label="vuz192/Succ vuz1920",fontsize=10,color="white",style="solid",shape="box"];3245 -> 3634[label="",style="solid", color="burlywood", weight=9]; 3634 -> 3253[label="",style="solid", color="burlywood", weight=3]; 3635[label="vuz192/Zero",fontsize=10,color="white",style="solid",shape="box"];3245 -> 3635[label="",style="solid", color="burlywood", weight=9]; 3635 -> 3254[label="",style="solid", color="burlywood", weight=3]; 3246[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero vuz192 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero vuz192 == LT)) `rem` Integer vuz193)",fontsize=16,color="burlywood",shape="box"];3636[label="vuz192/Succ vuz1920",fontsize=10,color="white",style="solid",shape="box"];3246 -> 3636[label="",style="solid", color="burlywood", weight=9]; 3636 -> 3255[label="",style="solid", color="burlywood", weight=3]; 3637[label="vuz192/Zero",fontsize=10,color="white",style="solid",shape="box"];3246 -> 3637[label="",style="solid", color="burlywood", weight=9]; 3637 -> 3256[label="",style="solid", color="burlywood", weight=3]; 1982[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1982 -> 2033[label="",style="solid", color="black", weight=3]; 1983[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1983 -> 2034[label="",style="solid", color="black", weight=3]; 1984[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1984 -> 2035[label="",style="solid", color="black", weight=3]; 3116[label="Integer vuz172 `quot` absReal1 (Integer (Pos (Succ vuz173))) False",fontsize=16,color="black",shape="box"];3116 -> 3183[label="",style="solid", color="black", weight=3]; 3117[label="vuz172",fontsize=16,color="green",shape="box"];3118[label="vuz173",fontsize=16,color="green",shape="box"];2100[label="primQuotInt vuz290 vuz134",fontsize=16,color="burlywood",shape="box"];3638[label="vuz290/Pos vuz2900",fontsize=10,color="white",style="solid",shape="box"];2100 -> 3638[label="",style="solid", color="burlywood", weight=9]; 3638 -> 2183[label="",style="solid", color="burlywood", weight=3]; 3639[label="vuz290/Neg vuz2900",fontsize=10,color="white",style="solid",shape="box"];2100 -> 3639[label="",style="solid", color="burlywood", weight=9]; 3639 -> 2184[label="",style="solid", color="burlywood", weight=3]; 1992[label="Integer vuz290 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];1992 -> 2044[label="",style="solid", color="black", weight=3]; 1994 -> 2047[label="",style="dashed", color="red", weight=0]; 1994[label="Integer vuz290 `quot` Integer (primNegInt (Neg (Succ vuz30000)))",fontsize=16,color="magenta"];1994 -> 2051[label="",style="dashed", color="magenta", weight=3]; 3182[label="Integer vuz177 `quot` absReal1 (Integer (Neg (Succ vuz178))) True",fontsize=16,color="black",shape="box"];3182 -> 3251[label="",style="solid", color="black", weight=3]; 2000[label="Integer vuz290 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];2000 -> 2060[label="",style="solid", color="black", weight=3]; 3247[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) (Succ vuz1850) == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) (Succ vuz1850) == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3247 -> 3257[label="",style="solid", color="black", weight=3]; 3248[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) Zero == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat (Succ vuz1840) Zero == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3248 -> 3258[label="",style="solid", color="black", weight=3]; 3249[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero (Succ vuz1850) == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero (Succ vuz1850) == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3249 -> 3259[label="",style="solid", color="black", weight=3]; 3250[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3250 -> 3260[label="",style="solid", color="black", weight=3]; 2027 -> 2375[label="",style="dashed", color="red", weight=0]; 2027[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz30000)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos (Succ vuz30000)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2027 -> 2376[label="",style="dashed", color="magenta", weight=3]; 2027 -> 2377[label="",style="dashed", color="magenta", weight=3]; 2028[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2028 -> 2084[label="",style="solid", color="black", weight=3]; 2029[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2029 -> 2085[label="",style="solid", color="black", weight=3]; 2030[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz30000))) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz30000))) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2030 -> 2086[label="",style="solid", color="black", weight=3]; 3253[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) (Succ vuz1920) == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) (Succ vuz1920) == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3253 -> 3264[label="",style="solid", color="black", weight=3]; 3254[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) Zero == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat (Succ vuz1910) Zero == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3254 -> 3265[label="",style="solid", color="black", weight=3]; 3255[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero (Succ vuz1920) == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero (Succ vuz1920) == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3255 -> 3266[label="",style="solid", color="black", weight=3]; 3256[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3256 -> 3267[label="",style="solid", color="black", weight=3]; 2033[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2033 -> 2091[label="",style="solid", color="black", weight=3]; 2034[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2034 -> 2092[label="",style="solid", color="black", weight=3]; 2035 -> 1983[label="",style="dashed", color="red", weight=0]; 2035[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];3183[label="Integer vuz172 `quot` absReal0 (Integer (Pos (Succ vuz173))) otherwise",fontsize=16,color="black",shape="box"];3183 -> 3252[label="",style="solid", color="black", weight=3]; 2183[label="primQuotInt (Pos vuz2900) vuz134",fontsize=16,color="burlywood",shape="box"];3640[label="vuz134/Pos vuz1340",fontsize=10,color="white",style="solid",shape="box"];2183 -> 3640[label="",style="solid", color="burlywood", weight=9]; 3640 -> 2196[label="",style="solid", color="burlywood", weight=3]; 3641[label="vuz134/Neg vuz1340",fontsize=10,color="white",style="solid",shape="box"];2183 -> 3641[label="",style="solid", color="burlywood", weight=9]; 3641 -> 2197[label="",style="solid", color="burlywood", weight=3]; 2184[label="primQuotInt (Neg vuz2900) vuz134",fontsize=16,color="burlywood",shape="box"];3642[label="vuz134/Pos vuz1340",fontsize=10,color="white",style="solid",shape="box"];2184 -> 3642[label="",style="solid", color="burlywood", weight=9]; 3642 -> 2198[label="",style="solid", color="burlywood", weight=3]; 3643[label="vuz134/Neg vuz1340",fontsize=10,color="white",style="solid",shape="box"];2184 -> 3643[label="",style="solid", color="burlywood", weight=9]; 3643 -> 2199[label="",style="solid", color="burlywood", weight=3]; 2044[label="Integer vuz290 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];2044 -> 2098[label="",style="solid", color="black", weight=3]; 2051 -> 934[label="",style="dashed", color="red", weight=0]; 2051[label="primNegInt (Neg (Succ vuz30000))",fontsize=16,color="magenta"];2051 -> 2099[label="",style="dashed", color="magenta", weight=3]; 3251 -> 2047[label="",style="dashed", color="red", weight=0]; 3251[label="Integer vuz177 `quot` Integer (Neg (Succ vuz178))",fontsize=16,color="magenta"];3251 -> 3261[label="",style="dashed", color="magenta", weight=3]; 3251 -> 3262[label="",style="dashed", color="magenta", weight=3]; 2060 -> 2047[label="",style="dashed", color="red", weight=0]; 2060[label="Integer vuz290 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];2060 -> 2106[label="",style="dashed", color="magenta", weight=3]; 3257 -> 3119[label="",style="dashed", color="red", weight=0]; 3257[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz1840 vuz1850 == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (primCmpNat vuz1840 vuz1850 == LT)) `rem` Integer vuz186)",fontsize=16,color="magenta"];3257 -> 3268[label="",style="dashed", color="magenta", weight=3]; 3257 -> 3269[label="",style="dashed", color="magenta", weight=3]; 3258 -> 1844[label="",style="dashed", color="red", weight=0]; 3258[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (GT == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (GT == LT)) `rem` Integer vuz186)",fontsize=16,color="magenta"];3258 -> 3270[label="",style="dashed", color="magenta", weight=3]; 3258 -> 3271[label="",style="dashed", color="magenta", weight=3]; 3258 -> 3272[label="",style="dashed", color="magenta", weight=3]; 3258 -> 3273[label="",style="dashed", color="magenta", weight=3]; 3259[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (LT == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (LT == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3259 -> 3274[label="",style="solid", color="black", weight=3]; 3260[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not (EQ == LT)) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not (EQ == LT)) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3260 -> 3275[label="",style="solid", color="black", weight=3]; 2376[label="Pos (Succ vuz30000)",fontsize=16,color="green",shape="box"];2377[label="Pos (Succ vuz30000)",fontsize=16,color="green",shape="box"];2375[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer vuz153 `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer vuz152 `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2375 -> 2393[label="",style="solid", color="black", weight=3]; 2084[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2084 -> 2200[label="",style="solid", color="black", weight=3]; 2085 -> 2375[label="",style="dashed", color="red", weight=0]; 2085[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2085 -> 2378[label="",style="dashed", color="magenta", weight=3]; 2085 -> 2379[label="",style="dashed", color="magenta", weight=3]; 2086[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz30000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz30000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2086 -> 2202[label="",style="solid", color="black", weight=3]; 3264 -> 3184[label="",style="dashed", color="red", weight=0]; 3264[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz1910 vuz1920 == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (primCmpNat vuz1910 vuz1920 == LT)) `rem` Integer vuz193)",fontsize=16,color="magenta"];3264 -> 3277[label="",style="dashed", color="magenta", weight=3]; 3264 -> 3278[label="",style="dashed", color="magenta", weight=3]; 3265[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (GT == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (GT == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3265 -> 3279[label="",style="solid", color="black", weight=3]; 3266 -> 1849[label="",style="dashed", color="red", weight=0]; 3266[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (LT == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (LT == LT)) `rem` Integer vuz193)",fontsize=16,color="magenta"];3266 -> 3280[label="",style="dashed", color="magenta", weight=3]; 3266 -> 3281[label="",style="dashed", color="magenta", weight=3]; 3266 -> 3282[label="",style="dashed", color="magenta", weight=3]; 3266 -> 3283[label="",style="dashed", color="magenta", weight=3]; 3267[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not (EQ == LT)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not (EQ == LT)) `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3267 -> 3284[label="",style="solid", color="black", weight=3]; 2091[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2091 -> 2207[label="",style="solid", color="black", weight=3]; 2092 -> 2375[label="",style="dashed", color="red", weight=0]; 2092[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Neg Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2092 -> 2380[label="",style="dashed", color="magenta", weight=3]; 2092 -> 2381[label="",style="dashed", color="magenta", weight=3]; 3252[label="Integer vuz172 `quot` absReal0 (Integer (Pos (Succ vuz173))) True",fontsize=16,color="black",shape="box"];3252 -> 3263[label="",style="solid", color="black", weight=3]; 2196[label="primQuotInt (Pos vuz2900) (Pos vuz1340)",fontsize=16,color="burlywood",shape="box"];3644[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2196 -> 3644[label="",style="solid", color="burlywood", weight=9]; 3644 -> 2289[label="",style="solid", color="burlywood", weight=3]; 3645[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2196 -> 3645[label="",style="solid", color="burlywood", weight=9]; 3645 -> 2290[label="",style="solid", color="burlywood", weight=3]; 2197[label="primQuotInt (Pos vuz2900) (Neg vuz1340)",fontsize=16,color="burlywood",shape="box"];3646[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2197 -> 3646[label="",style="solid", color="burlywood", weight=9]; 3646 -> 2291[label="",style="solid", color="burlywood", weight=3]; 3647[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2197 -> 3647[label="",style="solid", color="burlywood", weight=9]; 3647 -> 2292[label="",style="solid", color="burlywood", weight=3]; 2198[label="primQuotInt (Neg vuz2900) (Pos vuz1340)",fontsize=16,color="burlywood",shape="box"];3648[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2198 -> 3648[label="",style="solid", color="burlywood", weight=9]; 3648 -> 2293[label="",style="solid", color="burlywood", weight=3]; 3649[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2198 -> 3649[label="",style="solid", color="burlywood", weight=9]; 3649 -> 2294[label="",style="solid", color="burlywood", weight=3]; 2199[label="primQuotInt (Neg vuz2900) (Neg vuz1340)",fontsize=16,color="burlywood",shape="box"];3650[label="vuz1340/Succ vuz13400",fontsize=10,color="white",style="solid",shape="box"];2199 -> 3650[label="",style="solid", color="burlywood", weight=9]; 3650 -> 2295[label="",style="solid", color="burlywood", weight=3]; 3651[label="vuz1340/Zero",fontsize=10,color="white",style="solid",shape="box"];2199 -> 3651[label="",style="solid", color="burlywood", weight=9]; 3651 -> 2296[label="",style="solid", color="burlywood", weight=3]; 2098 -> 2047[label="",style="dashed", color="red", weight=0]; 2098[label="Integer vuz290 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];2098 -> 2215[label="",style="dashed", color="magenta", weight=3]; 2099[label="vuz30000",fontsize=16,color="green",shape="box"];3261[label="Neg (Succ vuz178)",fontsize=16,color="green",shape="box"];3262[label="vuz177",fontsize=16,color="green",shape="box"];2106 -> 969[label="",style="dashed", color="red", weight=0]; 2106[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3268[label="vuz1840",fontsize=16,color="green",shape="box"];3269[label="vuz1850",fontsize=16,color="green",shape="box"];3270[label="vuz187",fontsize=16,color="green",shape="box"];3271[label="vuz186",fontsize=16,color="green",shape="box"];3272[label="vuz182",fontsize=16,color="green",shape="box"];3273[label="vuz183",fontsize=16,color="green",shape="box"];3274[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not True) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not True) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3274 -> 3285[label="",style="solid", color="black", weight=3]; 3275 -> 1899[label="",style="dashed", color="red", weight=0]; 3275[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) (not False) `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) (not False) `rem` Integer vuz186)",fontsize=16,color="magenta"];3275 -> 3286[label="",style="dashed", color="magenta", weight=3]; 3275 -> 3287[label="",style="dashed", color="magenta", weight=3]; 3275 -> 3288[label="",style="dashed", color="magenta", weight=3]; 3275 -> 3289[label="",style="dashed", color="magenta", weight=3]; 2393 -> 2467[label="",style="dashed", color="red", weight=0]; 2393[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primRemInt vuz153 vuz94) == vuz101) (Integer vuz94) (Integer (primRemInt vuz153 vuz94))",fontsize=16,color="magenta"];2393 -> 2468[label="",style="dashed", color="magenta", weight=3]; 2393 -> 2469[label="",style="dashed", color="magenta", weight=3]; 2200[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2200 -> 2312[label="",style="solid", color="black", weight=3]; 2378[label="Pos Zero",fontsize=16,color="green",shape="box"];2379[label="Pos Zero",fontsize=16,color="green",shape="box"];2202[label="Integer vuz290 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz30000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg (Succ vuz30000))) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2202 -> 2315[label="",style="solid", color="black", weight=3]; 3277[label="vuz1910",fontsize=16,color="green",shape="box"];3278[label="vuz1920",fontsize=16,color="green",shape="box"];3279[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193)",fontsize=16,color="black",shape="triangle"];3279 -> 3292[label="",style="solid", color="black", weight=3]; 3280[label="vuz194",fontsize=16,color="green",shape="box"];3281[label="vuz190",fontsize=16,color="green",shape="box"];3282[label="vuz193",fontsize=16,color="green",shape="box"];3283[label="vuz189",fontsize=16,color="green",shape="box"];3284 -> 3279[label="",style="dashed", color="red", weight=0]; 3284[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) (not False) `rem` Integer vuz193)",fontsize=16,color="magenta"];2207[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2207 -> 2321[label="",style="solid", color="black", weight=3]; 2380[label="Neg Zero",fontsize=16,color="green",shape="box"];2381[label="Neg Zero",fontsize=16,color="green",shape="box"];3263[label="Integer vuz172 `quot` (`negate` Integer (Pos (Succ vuz173)))",fontsize=16,color="black",shape="box"];3263 -> 3276[label="",style="solid", color="black", weight=3]; 2289[label="primQuotInt (Pos vuz2900) (Pos (Succ vuz13400))",fontsize=16,color="black",shape="box"];2289 -> 2348[label="",style="solid", color="black", weight=3]; 2290[label="primQuotInt (Pos vuz2900) (Pos Zero)",fontsize=16,color="black",shape="box"];2290 -> 2349[label="",style="solid", color="black", weight=3]; 2291[label="primQuotInt (Pos vuz2900) (Neg (Succ vuz13400))",fontsize=16,color="black",shape="box"];2291 -> 2350[label="",style="solid", color="black", weight=3]; 2292[label="primQuotInt (Pos vuz2900) (Neg Zero)",fontsize=16,color="black",shape="box"];2292 -> 2351[label="",style="solid", color="black", weight=3]; 2293[label="primQuotInt (Neg vuz2900) (Pos (Succ vuz13400))",fontsize=16,color="black",shape="box"];2293 -> 2352[label="",style="solid", color="black", weight=3]; 2294[label="primQuotInt (Neg vuz2900) (Pos Zero)",fontsize=16,color="black",shape="box"];2294 -> 2353[label="",style="solid", color="black", weight=3]; 2295[label="primQuotInt (Neg vuz2900) (Neg (Succ vuz13400))",fontsize=16,color="black",shape="box"];2295 -> 2354[label="",style="solid", color="black", weight=3]; 2296[label="primQuotInt (Neg vuz2900) (Neg Zero)",fontsize=16,color="black",shape="box"];2296 -> 2355[label="",style="solid", color="black", weight=3]; 2215 -> 1002[label="",style="dashed", color="red", weight=0]; 2215[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3285[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz183))) False `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal1 (Integer (Pos (Succ vuz183))) False `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3285 -> 3293[label="",style="solid", color="black", weight=3]; 3286[label="vuz187",fontsize=16,color="green",shape="box"];3287[label="vuz186",fontsize=16,color="green",shape="box"];3288[label="vuz182",fontsize=16,color="green",shape="box"];3289[label="vuz183",fontsize=16,color="green",shape="box"];2468 -> 215[label="",style="dashed", color="red", weight=0]; 2468[label="Integer (primRemInt vuz153 vuz94) == vuz101",fontsize=16,color="magenta"];2468 -> 2476[label="",style="dashed", color="magenta", weight=3]; 2468 -> 2477[label="",style="dashed", color="magenta", weight=3]; 2469 -> 643[label="",style="dashed", color="red", weight=0]; 2469[label="primRemInt vuz153 vuz94",fontsize=16,color="magenta"];2469 -> 2478[label="",style="dashed", color="magenta", weight=3]; 2469 -> 2479[label="",style="dashed", color="magenta", weight=3]; 2467[label="Integer vuz290 `quot` gcd0Gcd'1 vuz159 (Integer vuz94) (Integer vuz160)",fontsize=16,color="burlywood",shape="triangle"];3652[label="vuz159/False",fontsize=10,color="white",style="solid",shape="box"];2467 -> 3652[label="",style="solid", color="burlywood", weight=9]; 3652 -> 2480[label="",style="solid", color="burlywood", weight=3]; 3653[label="vuz159/True",fontsize=10,color="white",style="solid",shape="box"];2467 -> 3653[label="",style="solid", color="burlywood", weight=9]; 3653 -> 2481[label="",style="solid", color="burlywood", weight=3]; 2312[label="Integer vuz290 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2312 -> 2370[label="",style="solid", color="black", weight=3]; 2315 -> 2375[label="",style="dashed", color="red", weight=0]; 2315[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz30000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg (Succ vuz30000))) `rem` Integer vuz94)",fontsize=16,color="magenta"];2315 -> 2382[label="",style="dashed", color="magenta", weight=3]; 2315 -> 2383[label="",style="dashed", color="magenta", weight=3]; 3292[label="Integer vuz189 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz190))) True `rem` Integer vuz193 == vuz194) (Integer vuz193) (absReal1 (Integer (Neg (Succ vuz190))) True `rem` Integer vuz193)",fontsize=16,color="black",shape="box"];3292 -> 3295[label="",style="solid", color="black", weight=3]; 2321[label="Integer vuz290 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2321 -> 2399[label="",style="solid", color="black", weight=3]; 3276 -> 2047[label="",style="dashed", color="red", weight=0]; 3276[label="Integer vuz172 `quot` Integer (primNegInt (Pos (Succ vuz173)))",fontsize=16,color="magenta"];3276 -> 3290[label="",style="dashed", color="magenta", weight=3]; 3276 -> 3291[label="",style="dashed", color="magenta", weight=3]; 2348[label="Pos (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2348 -> 2406[label="",style="dashed", color="green", weight=3]; 2349 -> 486[label="",style="dashed", color="red", weight=0]; 2349[label="error []",fontsize=16,color="magenta"];2350[label="Neg (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2350 -> 2407[label="",style="dashed", color="green", weight=3]; 2351 -> 486[label="",style="dashed", color="red", weight=0]; 2351[label="error []",fontsize=16,color="magenta"];2352[label="Neg (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2352 -> 2408[label="",style="dashed", color="green", weight=3]; 2353 -> 486[label="",style="dashed", color="red", weight=0]; 2353[label="error []",fontsize=16,color="magenta"];2354[label="Pos (primDivNatS vuz2900 (Succ vuz13400))",fontsize=16,color="green",shape="box"];2354 -> 2409[label="",style="dashed", color="green", weight=3]; 2355 -> 486[label="",style="dashed", color="red", weight=0]; 2355[label="error []",fontsize=16,color="magenta"];3293[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz183))) otherwise `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal0 (Integer (Pos (Succ vuz183))) otherwise `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3293 -> 3296[label="",style="solid", color="black", weight=3]; 2476[label="vuz101",fontsize=16,color="green",shape="box"];2477 -> 643[label="",style="dashed", color="red", weight=0]; 2477[label="primRemInt vuz153 vuz94",fontsize=16,color="magenta"];2477 -> 2524[label="",style="dashed", color="magenta", weight=3]; 2477 -> 2525[label="",style="dashed", color="magenta", weight=3]; 2478[label="vuz153",fontsize=16,color="green",shape="box"];2479[label="vuz94",fontsize=16,color="green",shape="box"];2480[label="Integer vuz290 `quot` gcd0Gcd'1 False (Integer vuz94) (Integer vuz160)",fontsize=16,color="black",shape="box"];2480 -> 2526[label="",style="solid", color="black", weight=3]; 2481[label="Integer vuz290 `quot` gcd0Gcd'1 True (Integer vuz94) (Integer vuz160)",fontsize=16,color="black",shape="box"];2481 -> 2527[label="",style="solid", color="black", weight=3]; 2370[label="Integer vuz290 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2370 -> 2487[label="",style="solid", color="black", weight=3]; 2382 -> 934[label="",style="dashed", color="red", weight=0]; 2382[label="primNegInt (Neg (Succ vuz30000))",fontsize=16,color="magenta"];2382 -> 2488[label="",style="dashed", color="magenta", weight=3]; 2383 -> 934[label="",style="dashed", color="red", weight=0]; 2383[label="primNegInt (Neg (Succ vuz30000))",fontsize=16,color="magenta"];2383 -> 2489[label="",style="dashed", color="magenta", weight=3]; 3295 -> 2375[label="",style="dashed", color="red", weight=0]; 3295[label="Integer vuz189 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz190)) `rem` Integer vuz193 == vuz194) (Integer vuz193) (Integer (Neg (Succ vuz190)) `rem` Integer vuz193)",fontsize=16,color="magenta"];3295 -> 3297[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3298[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3299[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3300[label="",style="dashed", color="magenta", weight=3]; 3295 -> 3301[label="",style="dashed", color="magenta", weight=3]; 2399 -> 2375[label="",style="dashed", color="red", weight=0]; 2399[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2399 -> 2495[label="",style="dashed", color="magenta", weight=3]; 2399 -> 2496[label="",style="dashed", color="magenta", weight=3]; 3290 -> 1753[label="",style="dashed", color="red", weight=0]; 3290[label="primNegInt (Pos (Succ vuz173))",fontsize=16,color="magenta"];3290 -> 3294[label="",style="dashed", color="magenta", weight=3]; 3291[label="vuz172",fontsize=16,color="green",shape="box"];2406 -> 499[label="",style="dashed", color="red", weight=0]; 2406[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2406 -> 2504[label="",style="dashed", color="magenta", weight=3]; 2406 -> 2505[label="",style="dashed", color="magenta", weight=3]; 2407 -> 499[label="",style="dashed", color="red", weight=0]; 2407[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2407 -> 2506[label="",style="dashed", color="magenta", weight=3]; 2407 -> 2507[label="",style="dashed", color="magenta", weight=3]; 2408 -> 499[label="",style="dashed", color="red", weight=0]; 2408[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2408 -> 2508[label="",style="dashed", color="magenta", weight=3]; 2408 -> 2509[label="",style="dashed", color="magenta", weight=3]; 2409 -> 499[label="",style="dashed", color="red", weight=0]; 2409[label="primDivNatS vuz2900 (Succ vuz13400)",fontsize=16,color="magenta"];2409 -> 2510[label="",style="dashed", color="magenta", weight=3]; 2409 -> 2511[label="",style="dashed", color="magenta", weight=3]; 3296[label="Integer vuz182 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz183))) True `rem` Integer vuz186 == vuz187) (Integer vuz186) (absReal0 (Integer (Pos (Succ vuz183))) True `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3296 -> 3302[label="",style="solid", color="black", weight=3]; 2524[label="vuz153",fontsize=16,color="green",shape="box"];2525[label="vuz94",fontsize=16,color="green",shape="box"];2526[label="Integer vuz290 `quot` gcd0Gcd'0 (Integer vuz94) (Integer vuz160)",fontsize=16,color="black",shape="box"];2526 -> 2565[label="",style="solid", color="black", weight=3]; 2527 -> 2047[label="",style="dashed", color="red", weight=0]; 2527[label="Integer vuz290 `quot` Integer vuz94",fontsize=16,color="magenta"];2527 -> 2566[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2375[label="",style="dashed", color="red", weight=0]; 2487[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2487 -> 2534[label="",style="dashed", color="magenta", weight=3]; 2487 -> 2535[label="",style="dashed", color="magenta", weight=3]; 2488[label="vuz30000",fontsize=16,color="green",shape="box"];2489[label="vuz30000",fontsize=16,color="green",shape="box"];3297[label="Neg (Succ vuz190)",fontsize=16,color="green",shape="box"];3298[label="vuz194",fontsize=16,color="green",shape="box"];3299[label="Neg (Succ vuz190)",fontsize=16,color="green",shape="box"];3300[label="vuz193",fontsize=16,color="green",shape="box"];3301[label="vuz189",fontsize=16,color="green",shape="box"];2495 -> 969[label="",style="dashed", color="red", weight=0]; 2495[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2496 -> 969[label="",style="dashed", color="red", weight=0]; 2496[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3294[label="vuz173",fontsize=16,color="green",shape="box"];2504[label="vuz2900",fontsize=16,color="green",shape="box"];2505[label="vuz13400",fontsize=16,color="green",shape="box"];2506[label="vuz2900",fontsize=16,color="green",shape="box"];2507[label="vuz13400",fontsize=16,color="green",shape="box"];2508[label="vuz2900",fontsize=16,color="green",shape="box"];2509[label="vuz13400",fontsize=16,color="green",shape="box"];2510[label="vuz2900",fontsize=16,color="green",shape="box"];2511[label="vuz13400",fontsize=16,color="green",shape="box"];3302[label="Integer vuz182 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz183))) `rem` Integer vuz186 == vuz187) (Integer vuz186) ((`negate` Integer (Pos (Succ vuz183))) `rem` Integer vuz186)",fontsize=16,color="black",shape="box"];3302 -> 3303[label="",style="solid", color="black", weight=3]; 2565[label="Integer vuz290 `quot` gcd0Gcd' (Integer vuz160) (Integer vuz94 `rem` Integer vuz160)",fontsize=16,color="black",shape="box"];2565 -> 2598[label="",style="solid", color="black", weight=3]; 2566[label="vuz94",fontsize=16,color="green",shape="box"];2534 -> 1002[label="",style="dashed", color="red", weight=0]; 2534[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];2535 -> 1002[label="",style="dashed", color="red", weight=0]; 2535[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3303 -> 2375[label="",style="dashed", color="red", weight=0]; 3303[label="Integer vuz182 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz183))) `rem` Integer vuz186 == vuz187) (Integer vuz186) (Integer (primNegInt (Pos (Succ vuz183))) `rem` Integer vuz186)",fontsize=16,color="magenta"];3303 -> 3304[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3305[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3306[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3307[label="",style="dashed", color="magenta", weight=3]; 3303 -> 3308[label="",style="dashed", color="magenta", weight=3]; 2598[label="Integer vuz290 `quot` gcd0Gcd'2 (Integer vuz160) (Integer vuz94 `rem` Integer vuz160)",fontsize=16,color="black",shape="box"];2598 -> 2628[label="",style="solid", color="black", weight=3]; 3304 -> 1753[label="",style="dashed", color="red", weight=0]; 3304[label="primNegInt (Pos (Succ vuz183))",fontsize=16,color="magenta"];3304 -> 3309[label="",style="dashed", color="magenta", weight=3]; 3305[label="vuz187",fontsize=16,color="green",shape="box"];3306 -> 1753[label="",style="dashed", color="red", weight=0]; 3306[label="primNegInt (Pos (Succ vuz183))",fontsize=16,color="magenta"];3306 -> 3310[label="",style="dashed", color="magenta", weight=3]; 3307[label="vuz186",fontsize=16,color="green",shape="box"];3308[label="vuz182",fontsize=16,color="green",shape="box"];2628 -> 2375[label="",style="dashed", color="red", weight=0]; 2628[label="Integer vuz290 `quot` gcd0Gcd'1 (Integer vuz94 `rem` Integer vuz160 == fromInt (Pos Zero)) (Integer vuz160) (Integer vuz94 `rem` Integer vuz160)",fontsize=16,color="magenta"];2628 -> 2658[label="",style="dashed", color="magenta", weight=3]; 2628 -> 2659[label="",style="dashed", color="magenta", weight=3]; 2628 -> 2660[label="",style="dashed", color="magenta", weight=3]; 2628 -> 2661[label="",style="dashed", color="magenta", weight=3]; 3309[label="vuz183",fontsize=16,color="green",shape="box"];3310[label="vuz183",fontsize=16,color="green",shape="box"];2658[label="vuz94",fontsize=16,color="green",shape="box"];2659 -> 13[label="",style="dashed", color="red", weight=0]; 2659[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2660[label="vuz94",fontsize=16,color="green",shape="box"];2661[label="vuz160",fontsize=16,color="green",shape="box"];} ---------------------------------------- (1294) TRUE